トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Java collection 学習資料

  • Java 新人用 collection 学習資料

【連載 】コレクションフレームワーク

  • スタックアスタリスク

第1回:コレクションフレームワークの概要

配列は関連するデータを扱うものとして大変便利ですが、配列の大きさを変更できないという制限があり、機能は単純なものに限られています。

Javaではオブジェクトのグループを操作できるよう、Java開発当初から配列に加えてVectorやHashTableなどのクラスが提供されてきました。

JDK1.2以降はこれらのクラスよりもはるかに汎用化の進んだコレクションフレームワークというものがサポートされるようになりました。

  • 分類 List / Map / Set

よく使うもの

ArrayList

  • 作成 ArrayList arraylist = new ArrayList();
  • 追加
arraylist.add(追加したいオブジェクト);
  • 取得
Object obj = ararylist.get(i);

HashMap

  • 作成 HashMap hashmap = new HashMap();
  • put(key,value);
Object obj = hashmap.get(key);
  • キー一覧の取得
Set keys = hashmap.keySet();

Collection

  • コレクション間の変換が簡単
  • 反復子 iterator が共通で使える

配列とListの違い

配列 ArrayList
要素の長さ 変更不可 変更可能
データ型 定義した型だけ java.lang.Object
int や char などの基本データ型 配列作成が可能 Integer や String に変換して配列作成

第2回:Listの活用法

array=new ArrayList();
array.add(obj1);
array.add(obj2);
array.add(obj3);
int size=array.size()
Order od = array.get(1);

第3回:Mapの活用法

HashMap map = new HashMap();
map.put("09W0011",obj11);
map.put("09W0012",obj12);
map.put("09W0013",obj13);
int size=map.size();

キー値を重複して追加した場合、キー値に関連付けられた値が上書きされることがわかります。

HashMapを使用すれば「キーを付けて値を関連付ける」ことはできますが「順序の管理」はできません

TreeMapクラスはSortedMapインターフェースを実装したクラスで、マップが確実にキーの昇順でソートされます。

第4回:Setの活用法

コレクション内のオブジェクトの順番を管理することができない。

ListやMapにあったget()メソッドはSetにはない。

HashSetクラスはSetインターフェースを実装したクラスの中で最も高速に動作します。

HashMapクラスのメソッドには、Setオブジェクトを返すメソッドが用意されています。

Mapに格納されているオブジェクトをSetに変換して、Setからiterator()メソッドを呼び出して全ての値を取得する目的で良く使われます。

第5回:コレクションフレームワークで使用する様々な機能(前編)

第6回:コレクションフレームワークで使用する様々な機能(後編)

第7回:JDK5でのコレクションフレームワークの変更点

コレクションフレームワークから要素を取り出すときにキャストが不要であったり、基本データ型のラッピングオブジェクトを使った変換が自動化されたりと、コードをシンプルに書くことができるようになりました。

  • 1.4
ArrayList orders = new ArrayList();
Order order1 = (Order) orders.get(1);
  • 1.5
ArrayList <Order> orders = new ArrayList <Order>();
Order order2 =  aaa.get(1);

拡張したfor文を使用すると、コードが更にシンプルになります。このfor文ではIteratorを使用することなく、コレクションに入っている全ての要素を取得することができます。