ホームページ > Java > &#&チュートリアル > 同じキーを持つ複数の値を HashMap に保存するにはどうすればよいですか?

同じキーを持つ複数の値を HashMap に保存するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-09 02:01:09
オリジナル
417 人が閲覧しました

How to Store Multiple Values with the Same Key in a HashMap?

キーごとに複数の値を持つ HashMap の作成

シナリオによっては、同じキーを持つ複数の値を HashMap に保存することが必要になる場合があります。 。 Java の HashMap はこれをネイティブにサポートしていませんが、この機能を実現するための代替アプローチがいくつかあります。

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

1 つのオプションは、値がリストである HashMap を作成することです。これにより、複数の値を 1 つのキーに関連付けることができます。例:

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

2. Wrapper Class

もう 1 つの方法は、複数の値を保持するラッパー クラスを定義することです。このラッパーは、HashMap:

class Wrapper {
    private Person person1;
    private Person person2;

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

    // Getter methods
}

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

3 の値として使用できます。タプル

プログラミング言語がタプルをサポートしている場合は、それらを HashMap のキーまたは値として利用できます。例:

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

4.複数のマップ

最後に、別の戦略は、値の型ごとに個別のマップを使用することです。

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

例の検討userId、clientID、およびtimeStamp:

オプション 1: リストを値としてマップする

Map<Integer, List<Pair<String, Long>>> data = new HashMap<>();

data.put(1, Arrays.asList(new Pair<>("client-1", System.currentTimeMillis())));
data.put(1, Arrays.asList(new Pair<>("client-2", System.currentTimeMillis())));
ログイン後にコピー

オプション 2: ラッパー クラス

class Data {
    private Integer userId;
    private String clientID;
    private Long timeStamp;

    public Data(Integer userId, String clientID, Long timeStamp) {
        this.userId = userId;
        this.clientID = clientID;
        this.timeStamp = timeStamp;
    }
}

Map<Integer, Data> data = new HashMap<>();

data.put(1, new Data(1, "client-1", System.currentTimeMillis()));
data.put(1, new Data(1, "client-2", System.currentTimeMillis()));
ログイン後にコピー

アプローチの選択は、アプリケーションの特定の要件と使用するプログラミング言語によって異なります。使用されています。

以上が同じキーを持つ複数の値を HashMap に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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