Ich muss ein merkwürdiges Szenario schaffen. Es wird wie folgt beschrieben:
Ich muss eine Map entwerfen, bei der die Schlüssel immer vom Typ String sind. Der ' Wert ' für einen der Schlüssel kann jedoch ein String oder eine Liste sein (hängt von der Anzahl der Werte ab, die ein bestimmter Schlüssel haben kann. 'Value' wird sein Eine Zeichenfolge, wenn dieser bestimmte Schlüssel nur einen Wert hat und eine Liste sein muss, wenn der Schlüssel viele Werte enthält. Wie erreiche ich dieses Szenario?
Zum Beispiel: Es gibt 2 Schlüssel in einer Karte, nämlich "Name" und "Telefonnummern". Eine Person kann nur einen Namen und mehrere Telefonnummern haben. Hier sollte der erste Schlüssel, d.h. "Name", den Typ "String" für Wert haben, während für den zweiten Schlüssel, d. H. "Telefonnummern", den Typ "Liste" für Wert haben sollte. Wie man eine solche Map deklariert. Ist es möglich?
Es ist möglich, etwas wie Map<String, Object>
zu machen.
Aber : Ich würde Ihnen dringend empfehlen, Ihren Entwurf zu überdenken. Sie sollten stattdessen eine Klasse für Ihre Personen verwenden. Auf diese Weise können Sie: Map<String, Person>
mit Person
Getter und Setter für Namen, Telefonnummern und andere Informationen haben.
Beispiel Person
class:
Nun, warum nicht ein Map<String, List<String>>
machen? Sie könnten immer nur ein Element zu Ihrer Liste hinzufügen, wenn es nur einen Wert gibt, oder Sie verwenden einen allgemeinen Supertyp von String und Liste, also würden Sie
Warum nicht eine PhoneNumber-Wrapperklasse erstellen, die eine API zum Sortieren von ein oder mehreren Telefonnummern freigibt und dann entweder eine oder alle (mehrere) Telefonnummern abrufen und dann eine Zuordnung von String und PhoneNumber erstellen kann? Etwas wie:
%Vor%}