0
0

JavaでのStack, Queue, PriorityQueue, Map

Posted at

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0