ホームページ > Java > &#&チュートリアル > 値ペアに Java の「Map」の代わりに「AbstractMap.SimpleEntry」を使用する必要があるのはどのような場合ですか?

値ペアに Java の「Map」の代わりに「AbstractMap.SimpleEntry」を使用する必要があるのはどのような場合ですか?

DDD
リリース: 2024-12-16 07:05:15
オリジナル
1001 人が閲覧しました

When Should I Use `AbstractMap.SimpleEntry` Instead of Java's `Map` for Value Pairs?

値ペアを保存するための Java のマップの代替手段

Java は、キーと値のペアを管理するための Map データ構造を提供し、各エントリに特定のタイプを定義できるようにします。ただし、各要素が異なる型の 2 つの値で構成される値のペアのコレクションが必要な場合、Map は理想的なソリューションではない可能性があります。

これに対処するために、Java は代替手段を提供します。AbstractMap .SimpleEntry クラス。このクラスを使用すると、値のペアを含むエントリを作成できます。各値は独自の型を持つことができます。

AbstractMap.SimpleEntry の使用

AbstractMap.SimpleEntry を利用するには、次の手順に従います。

  1. インスタンスを作成します: をインスタンス化します。 SimpleEntry オブジェクト。保持する値のタイプを指定します。
  2. エントリの追加: コレクションの add() メソッドを使用して、SimpleEntry インスタンスをコレクションに追加します。
  3. 値へのアクセス: getKey() と getValue() を使用して SimpleEntry から値を取得します。

例:

// Create a list of SimpleEntry pairs
List<Map.Entry<String, Integer>> pairList = new ArrayList<>();

// Add some pairs to the list
pairList.add(new AbstractMap.SimpleEntry<>("Not Unique Key 1", 1));
pairList.add(new AbstractMap.SimpleEntry<>("Not Unique Key 2", 2));
ログイン後にコピー

便利なメソッドとサブクラス化

プロセスを簡略化するために、createEntry() メソッドを使用して SimpleEntry インスタンスを作成できます。希望のタイプで。さらに、ArrayList クラスをサブクラス化し、of() メソッドを公開して構文をさらに簡潔にすることができます。

// Create a TupleList class extending ArrayList
public class TupleList<E> extends ArrayList<E> {

    public TupleList() {}

    // Exposed method for creating and adding SimpleEntry pairs
    public void of(Object... args) {
        if (args.length % 2 != 0) {
            throw new IllegalArgumentException("Number of arguments must be even.");
        }

        for (int i = 0; i < args.length; i += 2) {
            add(new SimpleEntry<>(args[i], args[i + 1]));
        }
    }
}

// Usage
TupleList<Map.Entry<String, Integer>> pair = new TupleList<>();
pair.of("Not Unique Key 1", 1);
pair.of("Not Unique Key 2", 2);
ログイン後にコピー

これにより、ペアを作成してコレクションに追加するためのより簡潔な構文が可能になります。

以上が値ペアに Java の「Map」の代わりに「AbstractMap.SimpleEntry」を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート