webentwicklung-frage-antwort-db.com.de

Ein KeyValuePair in Java

Ich suche eine KeyValuePair-Klasse in Java.
Da Java.util häufig Schnittstellen verwendet, wird keine konkrete Implementierung bereitgestellt, sondern nur die Map.Entry-Schnittstelle.

Gibt es eine kanonische Implementierung, die ich importieren kann? Es ist eine dieser "Klempnerprogrammier" -Klassen, die ich nicht gerne 100x implementiere.

225
maayank

Die Dokumentation AbstractMap.SimpleEntry ist generisch und kann hilfreich sein.

231
Eyal Schneider

Android-Programmierer könnten BasicNameValuePair verwenden

Update:

BasicNameValuePair ist jetzt veraltet (API 22). Verwenden Sie stattdessen Pair .

Anwendungsbeispiel:

Pair<Integer, String> simplePair = new Pair<>(42, "Second");
Integer first = simplePair.first; // 42
String second = simplePair.second; // "Second"
97
kreker

Die Pair-Klasse von Commons Lang könnte helfen:

Pair<String, String> keyValue = new ImmutablePair("key", "value");

Natürlich müssten Sie commons-lang einbinden.

42
remipod

Die Verwendung von javafx.util.Pair ist für die meisten einfachen Schlüssel-Wert-Paarungen von zwei Typen ausreichend, die instanziiert werden können.

Pair<Integer, String> myPair = new Pair<>(7, "Seven");
Integer key = myPair.getKey();
String value = myPair.getValue();
13
AaronCarson
import Java.util.Map;

public class KeyValue<K, V> implements Map.Entry<K, V>
{
    private K key;
    private V value;

    public KeyValue(K key, V value)
    {
        this.key = key;
        this.value = value;
    }

    public K getKey()
    {
        return this.key;
    }

    public V getValue()
    {
        return this.value;
    }

    public K setKey(K key)
    {
        return this.key = key;
    }

    public V setValue(V value)
    {
        return this.value = value;
    }
}
9
Neoheurist

Ich benutze gerne

Eigenschaften

Beispiel:

Properties props = new Properties();

props.setProperty("displayName", "Jim Wilson"); // (key, value)

String name = props.getProperty("displayName"); // => Jim Wilson

String acctNum = props.getProperty("accountNumber"); // => null

String nextPosition = props.getProperty("position", "1"); // => 1

Wenn Sie mit einer Hash-Tabelle vertraut sind, sind Sie damit bereits ziemlich vertraut

Ich habe eine NameValuePair -Klasse in GlobalMentors Kernbibliothek veröffentlicht, die in Maven verfügbar ist. Dies ist ein laufendes Projekt mit einer langen Geschichte. Bitte senden Sie uns Ihre Änderungs- oder Verbesserungswünsche.

0
Garret Wilson
Hashtable<String, Object>

Es ist besser als Java.util.Properties das ist eigentlich eine Erweiterung von Hashtable<Object, Object>.

0
Oleg Mikhailov

Mein Liebling ist

HashMap<Type1, Type2>

Sie müssen lediglich den Datentyp für den Schlüssel für Type1 und den Datentyp für den Wert für Type2 angeben. Es ist das häufigste Schlüsselwertobjekt, das ich in Java gesehen habe.

https://docs.Oracle.com/javase/7/docs/api/Java/util/HashMap.html

0
Matthew Park