本日のお裾分け

日々の開発で得た知識をシェアします。Java/Scala/Ruby/javascript

【めも】Javaの資格(OCJP Gold)取得のためのコレクションまとめ...になる予定のもの

Javaの資格(OCJP Gold)取得シリーズ
mrdshinse.hatenablog.com

コレクションについて学習中のめもです。

Collections Frameworkのインターフェース

  • (IF)Iterable
    • (IF)Collection
      • (IF)List
      • (IF)Set
        • HashSet
        • (IF)SortedSet
          • (IF)NavigableSet
            • TreeSet
      • (IF)Queue
        • (IF)Deque
          • LinkedList
          • ArrayDeque
  • (IF)Map
    • HashMap
    • (IF)SortedMap
      • (IF)NavigableMap
        • TreeMap

Iteratorインターフェース

public interface Iterable<T>

Iteratorのメソッド一覧

修飾子 戻り値 メソッド
default void forEach(Consumer<? super T> action);
default Spliterator<T> spliterator();
Iterator<T> iterator();

Collectionインターフェース

public interface Collection<E> extends Iterable<E>

Collectionのメソッド一覧

修飾子 戻り値 メソッド
default Stream<E> stream();
default Stream<E> parallelStream();
default boolean removeIf(Predicate<? super E> filter);
boolean add(E element);
boolean addAll(Collection<? extends E> c);
void clear();
boolean contains(Object o);
boolean containsAll(Collection<?> c);
boolean isEmpty();
boolean remove(Object o);
boolean removeAll(Collection<?> c);
boolean retainAll(Collection<?> c);
int size();
Object[] toArray();
<T> T[] toArray(T[] a);

Listインターフェース

public interface List<E> extends Collection<E>

実装クラス

  • ArrayList
  • LinkedList - Queueインターフェースも実装している。
  • Vector - レガシー。遅いこと以外ArrayListと同じ
  • Stack - レガシー。ArrayDequeで代替する。

Listのメソッド一覧

修飾子 戻り値 メソッド
void add(int index, E element);
E get(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
void remove(int index);
E set(int index, E element);

Setインターフェース

public interface Set<E> extends Collection<E>

実装クラス

  • HashSet
  • TreeSet - ソートされたSet。要素数が増えると遅くなる。NavigableSetを実装している。

Setのメソッド一覧

なし。

SortedSet

public interface SortedSet<E> extends Set<E>

修飾子 戻り値 メソッド
Comparator<? super E> comparator();
E first();
SortedSet<E> headSet(E toElement);
E last();
SortedSet<E> subSet(E fromElement, E toElement);
SortedSet<E> tailSet(E fromElement);

NavigableSet

public interface NavigableSet<E> extends SortedSet<E>

修飾子 戻り値 メソッド
E ceiling(E element);
Iterator<E> descendingIterator();
NavigableSet<E> descendingSet();
E floor(E element);
E higher(E element);
E lower(E element);
E pollFirst();
E pollLast();
SortedSet<E> tailSet(E fromElement, boolean inclusive);

Queueインターフェース

public interface Queue<E> extends Collection<E>

実装クラス

  • ArrayDeque
  • LinkedList

Queueのメソッド一覧

修飾子 戻り値 メソッド
boolean add(E element);
boolean offer(E element);
E remove();
E poll();
E element();
E peek();

Dequeのメソッド一覧

修飾子 戻り値 メソッド 備考
void addFirst(E element);
void addLast(E element); addと同じ。
boolean offerFirst(E element);
boolean offerLast(E element); offereと同じ。
E removeFirst(); removeと同じ。
E removeLast();
E pollFirst(); pollと同じ。
E pollLast();
E getFirst(); elementと同じ。
E getLast();
E peekFirst(); peekと同じ。
E peekLast();
void push(E element); addFirstと同じ。
E pop(); removeFirstと同じ。
boolean contains(Object o);
Iterator<E> iterator();
Iterator<E> descendingIterator();

Mapインターフェース

public interface Map<K,V>

実装クラス

  • TreeMap
  • Hashtable - レガシー。

Mapのメソッド一覧

修飾子 戻り値 メソッド 備考
void clear();
boolean isEmpty();
int size();
V get(Object key);
V put(K key, V value);
V remove(Object key);
boolean containsKey(Object key);
boolean containsValue(Object key);
Set<K> keySet();
Collection<V> values();

まとめ

クラス 実装している
インターフェース
ソート hashCode
の利用
compareTo
の利用
ArrayList List X X X
ArrayDeque Queue X X X
LinkedList List,Queue X X X
HashSet Set X O X
HashMap Map X O X
TreeSet Set O X O
TreeMap Map O X O
(old)Vector List X X X
(old)Stack List X X X
(old)Hashtable Map X O X

参考

Java8 Goldの試験対策本(日本語)はこちら。

英語だけどとても丁寧なテキストはこちら