0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java Gold メソッド逆引き早見表 Collection Map 返し値

Last updated at Posted at 2024-09-05

主要メソッド

メソッド名 宣言されたインターフェイスおよびクラス名 引数の型 戻り値の型 要素が空の場合の動作
add(E e) Collection<E> E boolean falseを返す(失敗時)、例外を投げる可能性あり
get(int index) List<E> int E 例外 (IndexOutOfBoundsException)
set(int index, E element) List<E> int, E E 例外 (IndexOutOfBoundsException)
removeIf(Predicate<? super E> filter) Collection<E> Predicate<? super E> boolean 空の場合、falseを返す
poll() Queue<E> なし E nullを返す
peek() Queue<E>, Deque<E> なし E nullを返す
replace(K key, V value) Map<K,V> K, V V 要素が存在しない場合、nullを返す
put(K key, V value) Map<K,V> K, V V nullを返す (要素が存在しなかった場合)
get(Object key) Map<K,V> Object V 要素が存在しない場合、nullを返す
replace(K key, V oldValue, V newValue) Map<K,V> K, V, V boolean 要素が存在しない場合、falseを返す
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) Map<K,V> K, BiFunction<? super K,? super V,? extends V> V 要素が存在しない場合、nullを返す可能性あり
remove(Object o) Collection<E> Object boolean falseを返す(要素が存在しない場合)
remove(int index) List<E> int E 例外 (IndexOutOfBoundsException)
remove(Object key) Map<K,V> Object V 要素が存在しない場合、nullを返す
remove() Queue<E> なし E 例外(NoSuchElementException)

removeメソッドなど、インターフェイスによって返し値が全く違うので注意

Dequeのメソッド

メソッド名 宣言されたインターフェイスおよびクラス名 引数の型 戻り値の型 要素が空の場合の動作
push(E e) Deque<E> E void 例外を投げる可能性あり
pop() Deque<E> なし E 例外 (NoSuchElementException)
peek() Queue<E>, Deque<E> なし E nullを返す
removeFirst() Deque<E> なし E 例外 (NoSuchElementException)
removeLast() Deque<E> なし E 例外 (NoSuchElementException)
pollFirst() Deque<E> なし E nullを返す
pollLast() Deque<E> なし E nullを返す
offerFirst(E e) Deque<E> E boolean 失敗した場合、falseを返す
offerLast(E e) Deque<E> E boolean 失敗した場合、falseを返す
peekFirst() Deque<E> なし E nullを返す
peekLast() Deque<E> なし E nullを返す

nullの扱い

コレクションクラス/インターフェイス nullのキーの許可 nullの値の許可 nullに関連する動作
ArrayList 許可 許可 nullを格納・検索・削除可能。
LinkedList 許可 許可 nullを格納・検索・削除可能。
HashSet 許可 許可 nullを格納・検索・削除可能。
TreeSet 許可しない 許可しない nullを追加しようとするとNullPointerExceptionが発生。
HashMap 許可 許可 nullをキーや値として使用可能。ただし、nullキーは1つだけ格納可能。
TreeMap 許可しない 許可 nullキーを使用するとNullPointerExceptionが発生。値としてのnullは許可される。
Hashtable 許可しない 許可しない nullキーまたはnull値を使用するとNullPointerExceptionが発生。
ConcurrentHashMap 許可しない 許可しない nullキーまたはnull値を使用するとNullPointerExceptionが発生。
PriorityQueue 許可しない 許可しない nullを追加しようとするとNullPointerExceptionが発生。
ArrayDeque 許可しない 許可しない nullを追加しようとするとNullPointerExceptionが発生。
EnumMap 許可しない 許可 キーにnullを使用するとNullPointerExceptionが発生。値としてのnullは許可される。
Vector 許可 許可 nullを格納・検索・削除可能。
Stack 許可 許可 nullを格納・検索・削除可能。
LinkedHashMap 許可 許可 nullキーとnull値の使用が可能。
WeakHashMap 許可 許可 nullキーとnull値の使用が可能。ただし、ガベージコレクションが発生した場合、nullキーは削除される。

補足

  • nullのキーを許可するコレクション:

    • HashMap, LinkedHashMap, WeakHashMap は、nullキーを1つだけ許可します。この場合、nullキーは他のキーと同様に扱われ、適切に格納・検索・削除が行われます。
  • nullを許可しないコレクション:

    • TreeSet, TreeMap, Hashtable, ConcurrentHashMap, PriorityQueue, ArrayDeque などは、nullキーやnull値を許可しません。これらのコレクションにnullを追加しようとすると、NullPointerExceptionが発生します。
  • TreeSetTreeMap:

    • これらは順序を保つために内部で比較操作を行う必要があり、null値の比較は不可能であるためnullを許可しません。キーとしても値としてもnullはサポートされません。
  • スレッドセーフなコレクション:

    • HashtableConcurrentHashMapなどのスレッドセーフなコレクションは、nullキーやnull値を許可しません。これにより、nullによる潜在的な競合状態を防ぐことができます。

不変コレクションの作成方法と例外処理

不変コレクションは、作成後に変更されないコレクションであり、変更操作が試みられた場合にはUnsupportedOperationExceptionが発生します。これにより、データの整合性を保証できるため、特定の場面で非常に有用です。特に、設計上変更が必要ないデータを扱う場合や、不変性が求められる環境(例:マルチスレッド環境)で役立ちます。

コレクションの種類 作成方法 メソッド 例外が発生する操作 例外の種類
不変リスト (List) List.of()
Collections.unmodifiableList()
add(E e)
remove(Object o)
set(int index, E element)
要素の追加、削除、変更 UnsupportedOperationException
不変セット (Set) Set.of()
Collections.unmodifiableSet()
add(E e)
remove(Object o)
要素の追加、削除 UnsupportedOperationException
不変マップ (Map) Map.of()
Collections.unmodifiableMap()
put(K key, V value)
remove(Object key)
要素の追加、削除 UnsupportedOperationException

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?