Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menyimpan Berbilang Nilai setiap Kunci dalam HashMap?

Bagaimanakah Saya Boleh Menyimpan Berbilang Nilai setiap Kunci dalam HashMap?

DDD
DDDasal
2024-12-21 03:33:14626semak imbas

How Can I Store Multiple Values per Key in a HashMap?

HashMap untuk Menyimpan Berbilang Nilai setiap Kunci

HashMap ialah struktur data yang digunakan secara meluas yang memetakan kunci kepada nilai. Walau bagaimanapun, ia biasanya direka untuk menyimpan satu nilai bagi setiap kunci. Had ini mungkin tidak sentiasa sejajar dengan keperluan dunia sebenar, apabila timbul keperluan untuk menyimpan berbilang nilai di bawah kunci yang sama.

Pendekatan untuk Melaksanakan Pelbagai Nilai dalam HashMap

Jika keperluan adalah untuk menyimpan tepat dua nilai setiap kunci, beberapa pendekatan boleh dipertimbangkan:

  1. Peta dengan Senarai sebagai Nilai: Ini melibatkan penggunaan Map> struktur data. Setiap kekunci dalam peta sepadan dengan senarai nilai, membenarkan berbilang nilai dikaitkan dengan satu kunci.
  2. Kelas Pembungkus: Kelas pembungkus boleh dibuat untuk merangkum kedua-dua nilai. Peta kemudian menyimpan kejadian kelas pembalut ini sebagai nilai, menyediakan cara untuk mendapatkan kedua-dua nilai secara serentak.
  3. Kelas Tuple: Kelas tuple boleh digunakan, iaitu terbina dalam atau perpustakaan luaran yang mewakili koleksi elemen. Peta boleh menggunakan tuple sebagai nilai, membenarkannya menyimpan tepat dua nilai dalam satu objek.

Contoh Pelaksanaan

Menggunakan Senarai sebagai Nilai:

// Initialize the HashMap
Map<String, List<Person>> peopleByForename = new HashMap<>();

// Populate the HashMap
List<Person> people = new ArrayList<>();
people.add(new Person("Bob Smith"));
people.add(new Person("Bob Jones"));

peopleByForename.put("Bob", people);

// Retrieve values
List<Person> bobs = peopleByForename.get("Bob");
Person bob1 = bobs.get(0);
Person bob2 = bobs.get(1);

Menggunakan Pembungkus Kelas:

// Define the wrapper class
class Wrapper {
    private Person person1;
    private Person person2;

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

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

// Initialize the HashMap
Map<String, Wrapper> peopleByForename = new HashMap<>();

// Populate the HashMap
peopleByForename.put("Bob", new Wrapper(new Person("Bob Smith"), new Person("Bob Jones")));

// Retrieve values
Wrapper bobs = peopleByForename.get("Bob");
Person bob1 = bobs.getPerson1();
Person bob2 = bobs.getPerson2();

Menggunakan Kelas Tuple:

// Initialize the HashMap
Map<String, Tuple2<Person, Person>> peopleByForename = new HashMap<>();

// Populate the HashMap
peopleByForename.put("Bob", new Tuple2<>(new Person("Bob Smith"), new Person("Bob Jones")));

// Retrieve values
Tuple2<Person, Person> bobs = peopleByForename.get("Bob");
Person bob1 = bobs.Item1;
Person bob2 = bobs.Item2;

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan Berbilang Nilai setiap Kunci dalam HashMap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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