|
| |
 |
コレクション(Set)編 |
 |
◆コレクションとは? |
| コレクションとは複数の要素が集まったグループを表すオブジェクトのことです。 |
| ◆コレクション・フレームワークとは? |
| コレクション・フレームワークとはコレクションを表したり操作したりする統一されたアーキテクチャのことです。 |
| ◆Setインターフェースとは? |
| 重複要素のないオブジェクトの集まりを表します。 |
| ◆ここでの環境 |
| OS |
Windows XP |
| J2SE SDK |
1.4.1_01 |
|
|
|
| ◆Java実行環境の構築 |
| アプリケーション編を参考にしてJava実行環境を構築してください。 |
| ◆Setインターフェース |
| ■Setインターフェースの構成 |
 |
| ■Setインターフェースの説明 |
| インターフェース |
説明 |
| Set |
重複要素のないオブジェクトの集まりを表します。 |
| SortedSet |
要素が自然順序付けに従って昇順にソートされたセットを表します。挿入される要素は、Comparable
インタフェースを実装するか、指定された Comparator によって受け付けられる必要があります。 |
|
|
| ◆実装 |
| SetインターフェースまたはSortedSetインターフェースを実装するクラスはHashSet、TreeSet、LinkedHashSetがあります。 |
| クラス |
説明 |
| HashSet |
HashMap のインスタンスを基づくSet インタフェースを実装します。繰り返し順序について保証しません。 |
| TreeSet |
TreeMap のインスタンスに基づくSet インタフェースを実装します。要素の昇順でソートされます。 |
| LinkedHashSet |
繰り返し順序を持つSet インタフェースのハッシュテーブルとリンクリストの実装です。要素がセットに挿入された順序を保持します。要素をセットに再挿入する場合、挿入順は影響を受けません。 |
|
|
| ◆サンプルコード |
| ここでは追加された要素がどのような順序で保持されているか見るプログラムを作成します。セットに10〜1までのIntegerオブジェクトを追加しています。 |
| ■ソースコード |
| HelloWorldSet.java(ここからダウンロード) |
import java.util.*;
public class HelloWorldSet {
public static void main(String[] args) {
try {
// HashSet
Set hashSet = new HashSet();
addData(hashSet);
System.out.println("HashSet : " + hashSet);
// TreeSet
Set treeSet = new TreeSet();
addData(treeSet);
System.out.println("TreeSet : " + treeSet);
// LinkedHashSet
Set linkedHashSet = new LinkedHashSet();
addData(linkedHashSet);
System.out.println("LinkedHashSet : " + linkedHashSet);
} catch (Exception e) {
e.printStackTrace();
}
}
static void addData(Set set) {
for (int i = 10;i >= 1;i--) {
set.add(new Integer(i));
}
}
} |
|
|
| ■コンパイルと実行 |
| コマンドプロンプト |
| C:\JavaHello\Set>javac
HelloWorldSet.java
C:\JavaHello\Set>java HelloWorldSet
HashSet : [2, 4, 8, 9, 6, 1, 3, 7, 10, 5]
TreeSet : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
LinkedHashSet : [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
C:\JavaHello\Set>
|
|
おおお!以下の説明の通りになっていますね!
HashSet・・・繰り返し順序について保証しない
TreeSet・・・要素の昇順でソートする
LinkedHashSet・・・要素が挿入された順序を保持する |
|
■書籍
Java関連の書籍 |
|
| |
|
| |
| ツールの部屋
- Java関連の書籍 - デザインパターン - 情報交換掲示板
- HOME |