web-dev-qa-db-fra.com

Un KeyValuePair dans Java

Je cherche une classe KeyValuePair en Java.
Etant donné que Java.util utilise beaucoup d’interfaces, aucune implémentation concrète n’est fournie, seule l’interface Map.Entry.

Existe-t-il une implémentation canonique que je peux importer? C'est l'une de ces classes de "programmation de plombiers" que je déteste implémenter 100 fois.

225
maayank

La documentation AbstractMap.SimpleEntry est générique et peut être utile.

231
Eyal Schneider

Les programmeurs Android pourraient utiliser BasicNameValuePair

Mise à jour:

BasicNameValuePair est maintenant obsolète (API 22). Utilisez Pair à la place.

Exemple d'utilisation:

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

La classe Pair de Commons Lang pourrait aider:

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

Bien sûr, vous devrez inclure commons-lang.

42
remipod

L'utilisation de javafx.util.Pair est suffisante pour la plupart des couplages clé-valeur simples de deux types quelconques pouvant être instanciés.

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

J'aime utiliser

Propriétés

Exemple:

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

Si vous connaissez une table de hachage, vous le saurez déjà déjà.

J'ai publié une classe NameValuePair dans la bibliothèque principale de GlobalMentor , disponible dans Maven. Ceci est un projet en cours avec une longue histoire, veuillez donc soumettre toute demande de modification ou d'amélioration.

0
Garret Wilson
Hashtable<String, Object>

C'est mieux que Java.util.Properties qui est en fait une extension de Hashtable<Object, Object>.

0
Oleg Mikhailov

Mon favori est

HashMap<Type1, Type2>

Tout ce que vous avez à faire est de spécifier le type de données pour la clé pour Type1 et le type de données pour la valeur pour Type2. C'est l'objet clé-valeur le plus courant que j'ai vu en Java.

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

0
Matthew Park