【めも】Javaの資格(OCJP Gold)取得のためのコレクションまとめ...になる予定のもの
Javaの資格(OCJP Gold)取得シリーズ
mrdshinse.hatenablog.com
コレクションについて学習中のめもです。
Collections Frameworkのインターフェース
- (IF)Iterable
- (IF)Map
- HashMap
- (IF)SortedMap
- (IF)NavigableMap
- TreeMap
- (IF)NavigableMap
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の試験対策本(日本語)はこちら。
英語だけどとても丁寧なテキストはこちら