参考図書:
参考webサイト:
Java - TECHSCORE http://www.techscore.com/tech/Java/index/
参考webサイト:
Java - TECHSCORE http://www.techscore.com/tech/Java/index/
コレクションの分類
データ構造とコレクション
データ構造 | 特徴 | Javaでのコレクションフレームワーク |
---|---|---|
リスト | 順序付けられたデータ。要素重複可。途中挿入・取出可。 | List(LinkedList) |
キュー | 待ち行列。FIFO。要素重複可。途中挿入・取出不可。 | Queue |
スタック | LIFO。要素重複可。途中挿入・取出不可。 | Deque(両端キューで実現) |
セット(集合) | 順序がないデータ。要素重複不可。 | Set |
マップ | 順序がない一意のキーと値のペアのデータ。キー重複不可。 | Map(Collectionのサブセットではないことに注意) |
コレクションの実装
https://docs.oracle.com/javase/jp/7/technotes/guides/collections/overview.htmlより引用
インタフェース | サイズ変更可能な配列 | リンクリスト | ハッシュテーブル | バランスツリー | ハッシュテーブル + リンクリスト |
---|---|---|---|---|---|
List |
ArrayList | LinkedList | |||
Deque |
ArrayDeque | LinkedList | |||
Set |
HashSet | TreeSet | LinkedHashSet | ||
Map |
HashMap | TreeMap | LinkedHashMap |
イテレータ
Listlist = new ArrayList () { { add("FIrst"); add("Secont"); add("Third"); } } // for-each(for文のシンタックスシュガー for (String element : list) { System.out.println(element); } // イテレータの利用 for (Iterator ite = list.iterator(); ite.hasNext(); ){ System.out.println(ite.next()); } // 逆からの読み出し for (Iterator ite = list.listIterator(list.size()); ite.hasPrevious(); ){ System.out.println(ite.previous()); }
ジェネリクス
型安全のための仕組みListlist = new ArrayList (); list.add("abc"); String hoge = list.get(0); // list.add(98765); //コンパイル時にエラーとなる //ジェネリクスを利用しない場合 ArrayList list2 = new ArrayList(); list2.add("abc"); String hoge = (String) list2.get(0); // list2.add(98765); // String fuga = (String)list2.get(1); //実行時エラーとなる //Java SE 7以降の省略記法(ダイヤモンド演算子 List list3 = new ArrayList<>(); //指定は参照型。基本形は不可 // List list = new ArrayList (); //以下はジェネリクスのブログ記載時のために出てしまうため無視してください
コメント