ホームページ > Java > &#&チュートリアル > Javaでキーごとに複数の値を持つHas​​hMapを実装するにはどうすればよいですか?

Javaでキーごとに複数の値を持つHas​​hMapを実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-11 10:02:12
オリジナル
1019 人が閲覧しました

How to Implement a HashMap with Multiple Values Per Key in Java?

キーごとに複数の値を持つマップの実装

特定のシナリオでは、同じキーの下に複数の値を格納する必要がある場合があります。ハッシュマップ。 Java の標準 HashMap はこの動作をネイティブにサポートしていませんが、これを実現するにはいくつかのアプローチがあります。

1.値としてリストを使用したマップ:

このアプローチには、値が目的の値のリストである HashMap の作成が含まれます。例:

Map<String, List<Person>> peopleByForename = new HashMap<>();
ログイン後にコピー

このメソッドは、キーの下に格納される値の数に関して柔軟性を提供しますが、正確に 2 つの値を持つという保証はありません。

2.ラッパー クラスの使用:

別の方法は、必要な値を含むラッパー クラスを定義し、それを HashMap の値として使用することです。

class Wrapper {
    private Person person1;
    private Person person2;

    public Wrapper(Person person1, Person person2) {
        this.person1 = person1;
        this.person2 = person2;
    }

    public Person getPerson1() { return this.person1; }
    public Person getPerson2() { return this.person2; }
}

Map<String, Wrapper> peopleByForename = new HashMap<>();
ログイン後にコピー

このメソッドは、正確に 2 つの値が存在しますが、ラッパー クラス用の追加の定型コードを作成する必要があります。

3.タプルの使用:

タプル クラスは、複数の値を 1 つのオブジェクトにカプセル化します。 HashMap の値としてタプルを使用すると、キーごとに複数の値を効果的に取得できます。例:

import java.util.Tuple;

Map<String, Tuple2<Person, Person>> peopleByForename = new HashMap<>();
ログイン後にコピー

4.複数のマップを並べて表示:

最後に、異なるキー タイプに複数の HashMap を使用することもできます。たとえば、次のように作成できます。

Map<String, Person> firstPersonByForename = new HashMap<>();
Map<String, Person> secondPersonByForename = new HashMap<>();
ログイン後にコピー

この方法では値を明確に分離できますが、2 つのマップが一貫して更新されていない場合、不一致が発生する可能性があります。

選択アプローチの方法は、アプリケーションの特定の要件によって異なります。キーごとに 2 つの値を厳密に適用することが重要な場合は、ラッパー クラスまたはタプルを使用する方が適切な場合があります。あるいは、値の数に柔軟性が必要な場合は、値としてリストを含むマップを使用する方が適切な場合があります。

以上がJavaでキーごとに複数の値を持つHas​​hMapを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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