die Datenstruktur sollte ich in java zum speichern von doppelten Werten?
Welche ist die beste Datenstruktur zum speichern von doppelten Werten in java? Und wie einfach ist es, Werte abzurufen, die von it!?
Dank
EDIT #1 ich lese Inhalte aus 1000 Dateien, und ich möchte die einzelnen Dateien Inhalt als Token in einigen Daten-Struktur. Ich Hashtable verwendet, aber ich bin nicht in der Lage, viele Worte, wenn ich das Tue,. thats, warum ich eine Datenstruktur für das speichern der doppelten Werte.
- Was meinst du mit "doppelte Werte?" Welche Daten werden gespeichert? Welche Operationen Sie durchführen müssen, auf diese Werte? Ohne weitere Informationen ist dies nicht zu beantworten.
- Müssen Sie doppelte Werte oder Referenzen? In anderen Worten, haben Sie mehrere Objekte mit dem gleichen Inhalt oder benötigen Sie mehrere Referenzen auf das gleiche Objekt?
- was sind die Inhalte? zahlen? wie wollen Sie auf diese später?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur für die Speicherung von einfachen Werten, sollten Sie eine Implementierung von der
List<E>
- Schnittstelle.Abrufen von Daten aus einer
List<E>
können Sie Folgendes tun:Je nach Verwendung entweder ein
ArrayList<E>
oderLinkedList<E>
wird tun, was Sie brauchen.Andere option wäre ein
Map<K V>
(es ist die UmsetzungHashMap
). Dies ermöglicht es Ihnen, sparen Sie doppelte Werte unter eindeutigen Schlüsseln.Können Sie Werte aus einer
Map<K,V>
haben Sie folgende Möglichkeiten:Antwort auf dein edit:
Die Sie möglicherweise verwenden möchten, ein
Map<String, List<String>>
wo der Schlüssel ist der name der Datei und der Wert ist eine Liste der Wörter in der Datei.Ihr code kann wie folgt Aussehen:
Am Ende dieses snipit,
data
gefüllt mit Listen von Wörtern aus den einzelnen Dateien.theres Mangel an info richtig beantworten diese qn.. aber trotzdem, hashmaps, könnte den trick tun. abrufen von Werten getan werden kann in konstanter Zeit auf durchschnittlich..
Sollten Sie verwenden
List<E>
aber sollten Sie implementieren eineint[] getDuplicateValuesIndexes(String value)
Methode und eineint getCount(String value)
. Diese wird nützlich sein, weil inList<E>
Implementierungen gibt es nichts zu behandeln doppelte Werte, wie Sie speichern nur die Werte von jeder Art.Java.util.Sammlung, implementiert nicht die Schnittstelle. Wahrscheinlich werden Sie wollen etwas, das implementiert eine Liste.
Arrays verwenden, um den Wert mit index (ich weiß, das unvollständige Antwort, aber so ist die Frage)