Heim >Java >javaLernprogramm >Wie kann ich mehrere Werte pro Schlüssel in einer HashMap speichern?
HashMap zum Speichern mehrerer Werte pro Schlüssel
HashMap ist eine weit verbreitete Datenstruktur, die Schlüssel Werten zuordnet. Normalerweise ist es jedoch darauf ausgelegt, für jeden Schlüssel einen einzelnen Wert zu speichern. Diese Einschränkung entspricht möglicherweise nicht immer den realen Anforderungen, bei denen die Notwendigkeit besteht, mehrere Werte unter demselben Schlüssel zu speichern.
Ansätze zur Implementierung mehrerer Werte in einer HashMap
Wenn die Anforderung darin besteht, genau zwei Werte pro Schlüssel zu speichern, können mehrere Ansätze in Betracht gezogen werden:
Beispielimplementierungen
Verwendung von Liste als Wert:
// 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);
Wrapper verwenden Klasse:
// 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();
Verwenden der Tupelklasse:
// 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;
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Werte pro Schlüssel in einer HashMap speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!