うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

javaのコレクション系クラスでよく使うメソッドの目的別まとめ

スポンサーリンク

配列,List,Mapの各メソッドを目的別に表にまとめてみました. (JavaTM Platform Standard Ed. 6 準拠)

操作名前 Array(配列) List Map
要素の参照 a[i] get(int index) get(Object key)
要素の変更 a[i]に代入 set(int index, E element) put(K key, V value)
要素の追加 - add(E e) put(K key, V value)
要素の削除(インデックス指定) - remove(int index) remove(Object key)
要素の削除(要素指定) - remove(Object o) 実装必要
要素の全削除 - clear() clear()
素数取得 a.length size() size()
要素の検索 Arrays.binarySearch(Object a, Object key) indexOf(Object o) 実装必要
整列 Arrays.sort Collections.sort(List list) (TreeMapの使用)
新規作成(空) new T[length] Collections.emptyList() Collections.emptyMap()
新規作成(全て同じ要素) 実装必要(Collections.fill()を使用) Collections.nCopies(int n, T o) 実装必要
結合 実装必要 addAll(Collection<? extends E> c) 実装必要
ディープコピー Arrays.copyOf(T original, int newLength) new ArrayList(list)等 new HashMap<K, V>(map)等

表の表記上の注意

  • 「実装必要」は自分で実装する必要あり.
  • ディープコピー:まったく新しいインスタンスを作ります.そのインスタンスの各要素はコピー元の要素と別部分を参照します. つまり,コピー先の要素を変更してもコピー元には何の影響も与えません.

  • Listの検索: Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)でも可能.

  • Listのディープコピー: Collections.copy(List<? super T> dest, List<? extends T> src)でも可能.