Rumah > Java > javaTutorial > Bagaimana untuk Menyimpan Berbilang Nilai dengan Kunci yang Sama dalam HashMap?

Bagaimana untuk Menyimpan Berbilang Nilai dengan Kunci yang Sama dalam HashMap?

Mary-Kate Olsen
Lepaskan: 2024-12-09 02:01:09
asal
414 orang telah melayarinya

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

Mencipta HashMaps dengan Berbilang Nilai setiap Kunci

Dalam sesetengah senario, mungkin perlu menyimpan berbilang nilai dengan kunci yang sama dalam HashMap . Walaupun HashMap Java tidak menyokong ini secara asli, terdapat beberapa pendekatan alternatif untuk mencapai fungsi ini.

1. Peta dengan Senarai sebagai Nilai

Satu pilihan adalah untuk mencipta HashMap di mana nilai adalah senarai. Ini membolehkan berbilang nilai dikaitkan dengan satu kunci. Contohnya:

Map<String, List<Person>> peopleByForename = new HashMap<>();
Salin selepas log masuk

2. Kelas Pembalut

Alternatifnya ialah untuk menentukan kelas pembalut yang memegang berbilang nilai. Pembalut ini kemudiannya boleh digunakan sebagai nilai dalam 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<>();
Salin selepas log masuk

3. Tuples

Jika bahasa pengaturcaraan anda menyokong tupel, anda boleh menggunakannya sebagai kunci atau nilai dalam HashMap. Contohnya:

Map<String, Tuple2<Person, Person>> peopleByForename = new HashMap<>();
Salin selepas log masuk

4. Peta Berbilang

Akhir sekali, strategi lain ialah menggunakan peta berasingan untuk setiap jenis nilai:

Map<String, Person> firstPersonByForename = new HashMap<>();
Map<String, Person> secondPersonByForename = new HashMap<>();
Salin selepas log masuk

Contoh

Memandangkan contoh senario HashMap dengan userId, clientID dan timeStamp:

Pilihan 1: Peta dengan Senarai sebagai Nilai

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())));
Salin selepas log masuk

Pilihan 2: Kelas Pembungkus

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()));
Salin selepas log masuk

Pilihan pendekatan bergantung pada keperluan khusus aplikasi anda dan bahasa pengaturcaraan yang digunakan.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Berbilang Nilai dengan Kunci yang Sama dalam HashMap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan