広告

Java : AbstractMap.SimpleImmutableEntry - API使用例

AbstractMap.SimpleImmutableEntry (Java SE 20 & JDK 20) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

キーと値を保守する変更不可のエントリ。 このクラスはsetValueメソッドをサポートしていません。 このクラスのインスタンスは、マップ・エントリ・セット・ビューに関連付けられていません。

クラス構成

AbstractMap.SimpleImmutableEntry クラスは、値を変更できない(不変な) Map.Entry インタフェースの実装です。
インスタンスの生成には、このクラスを直接 new せずに、代わりに Map.entry メソッドを使うのが便利です。

final var entry1 = Map.entry("a", 10);
System.out.println(entry1); // a=10

final var entry2 = new AbstractMap.SimpleImmutableEntry<>("b", 20);
System.out.println(entry2); // b=20

final var entry3 = new AbstractMap.SimpleEntry<>("c", 30);
System.out.println(entry3); // c=30

final var map1 = Map.ofEntries(entry1, entry2, entry3);
System.out.println(map1); // {a=10, b=20, c=30}

entry3.setValue(999);
System.out.println(entry3); // c=999

final var map2 = Map.ofEntries(entry1, entry2, entry3);
System.out.println(map2); // {a=10, b=20, c=999}

コンストラクタ

SimpleImmutableEntry (Map.Entry<? extends K,? extends V> entry)

指定されたエントリと同じマッピングを表すエントリを作成します。

final var entry1 = Map.entry("a", 10);
System.out.println(entry1); // a=10

final var entry2 = new AbstractMap.SimpleImmutableEntry<>(entry1);
System.out.println(entry2); // a=10

SimpleImmutableEntry (K key, V value)

指定されたキーから指定された値へのマッピングを表すエントリを作成します。

final var entry1 = new AbstractMap.SimpleImmutableEntry<>("a", 10);
System.out.println(entry1); // a=10

final var entry2 = new AbstractMap.SimpleImmutableEntry<>("b", 20);
System.out.println(entry2); // b=20

メソッド

boolean equals (Object o)

指定されたオブジェクトがエントリと等しいかどうかを比較します。

final var entry1 = new AbstractMap.SimpleImmutableEntry<>("a", 10);
final var entry2 = new AbstractMap.SimpleImmutableEntry<>("a", 10);

System.out.println(entry1.equals(entry2)); // true
final var entry1 = new AbstractMap.SimpleImmutableEntry<>("a", 10);
final var entry2 = new AbstractMap.SimpleImmutableEntry<>("a", 20);
final var entry3 = new AbstractMap.SimpleImmutableEntry<>("b", 20);

System.out.println(entry1.equals(entry2)); // false
System.out.println(entry1.equals(entry3)); // false
System.out.println(entry2.equals(entry3)); // false

K getKey ()

このエントリに対応するキーを返します。

final var entry = new AbstractMap.SimpleImmutableEntry<>("a", 10);
System.out.println(entry); // a=10
System.out.println(entry.getKey()); // a
System.out.println(entry.getValue()); // 10

try {
    final var ret = entry.setValue(999);
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}

// 結果
// ↓
//UnsupportedOperationException!

V getValue ()

このエントリに対応する値を返します。

このメソッドの使用例は、getKey() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

int hashCode ()

このマップ・エントリのハッシュ・コード値を返します。

final var entry1 = new AbstractMap.SimpleImmutableEntry<>("a", 10);
System.out.println(entry1.hashCode()); // 107

final var entry2 = new AbstractMap.SimpleImmutableEntry<>("a", 20);
System.out.println(entry2.hashCode()); // 117

final var entry3 = new AbstractMap.SimpleImmutableEntry<>("b", 20);
System.out.println(entry3.hashCode()); // 118

V setValue (V value)

このエントリに対応する値を、指定された値に置き換えます(オプションの操作)。

このメソッドの使用例は、getKey() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

String toString ()

このマップ・エントリの文字列表現を返します。

final var entry1 = new AbstractMap.SimpleImmutableEntry<>("a", 10);
final var str1 = entry1.toString();
System.out.println(str1); // a=10

final var entry2 = new AbstractMap.SimpleImmutableEntry<>("b", 20);
final var str2 = entry2.toString();
System.out.println(str2); // b=20

関連記事

ページの先頭へ