Javaのコレクションフレームワークで、
- Stack(スタック)
- Queue(キュー)
- PriorityQueue(優先度付きキュー)
- Map(連想配列)
を扱う時によく使うやつのメモ。
早見表的に各コレクションの主要な操作をまとめただけ。
Stack
-
インスタンスの型:
Deque<E>
-
実装クラス:
ArrayDeque<E>
-
操作:
-
追加:
push(e)
-
取得&削除:
pop()
-
参照:
peek()
-
追加:
使用例:
Deque<String> stack = new ArrayDeque<>();
stack.push("Hello");
stack.push("World");
System.out.println(stack.peek()); // World
stack.pop();
System.out.println(stack.peek()); // Hello
Queue
-
インスタンスの型:
Queue<E>
-
実装クラス:
ArrayDeque<E>
-
操作:
-
追加:
add(e)
/offer(e)
-
取得&削除:
remove()
/poll()
-
参照:
element()
/peek()
-
追加:
※ add(e)
, remove()
, element()
は操作が不成功の場合に例外をスロー
※ offer(e)
, poll()
, peek()
は操作が不成功の場合に特定の戻り値(通常はnullまたはfalse)を返し、例外はスローしない
使用例:
Queue<String> queue = new ArrayDeque<>();
queue.add("Hello");
queue.add("World");
System.out.println(queue.element()); // Hello
queue.remove();
System.out.println(queue.element()); // World
PriorityQueue
-
インスタンスの型:
Queue<E>
-
実装クラス:
PriorityQueue<E>
-
操作:
-
追加:
add(e)
/offer(e)
-
取得&削除:
remove()
/poll()
-
参照:
element()
/peek()
-
追加:
※ add(e)
, remove()
, element()
は操作が不成功の場合に例外をスロー
※ offer(e)
, poll()
, peek()
は操作が不成功の場合に特定の戻り値(通常はnullまたはfalse)を返し、例外はスローしない
使用例:
// 要素を降順に並び替え
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
pq.add(5);
pq.add(15);
pq.add(10);
System.out.println(pq.element()); // 15
pq.remove();
System.out.println(pq.element()); // 10
pq.remove();
System.out.println(pq.element()); // 5
Map
-
インスタンスの型:
Map<K,V>
-
実装クラス:
HashMap<K,V>
-
操作:
-
追加/更新:
put(key, value)
-
取得:
get(key)
-
削除:
remove(key)
-
キーの存在チェック:
containsKey(key)
-
値の存在チェック:
containsValue(value)
-
キーのセット取得:
keySet()
-
値のコレクション取得:
values()
-
キー・値ペアのセット取得:
entrySet()
-
サイズ取得:
size()
-
全要素の削除:
clear()
-
追加/更新:
使用例:
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
System.out.println(map.get("one")); // 1
map.remove("one");
System.out.println(map.containsKey("one")); // false