Java中的KeyValuePair

时间:2010-06-04 09:55:16

标签: java key-value

我正在寻找Java中的KeyValuePair类 由于java.util大量使用接口,因此不提供具体实现,只提供Map.Entry接口。

我可以导入一些规范的实现吗? 这是我讨厌实施100次的“管道工编程”课程之一。

10 个答案:

答案 0 :(得分:228)

文档AbstractMap.SimpleEntry是通用的,可能很有用。

答案 1 :(得分:95)

Android程序员可以使用BasicNameValuePair

<强>更新

BasicNameValuePair现已弃用(API 22)。 请改用Pair

使用示例:

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

答案 2 :(得分:42)

来自Commons Lang的Pair类可能有所帮助:

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

当然,你需要包括commons-lang。

答案 3 :(得分:13)

对于可以实例化的任何两种类型的大多数简单键值配对,使用javafx.util.Pair就足够了。

Pair<Integer, String> myPair = new Pair<>(7, "Seven");
Integer key = myPair.getKey();
String value = myPair.getValue();

答案 4 :(得分:8)

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;
    }
}

答案 5 :(得分:4)

我喜欢用

Properties

示例:

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

如果您熟悉哈希表,那么您已经非常熟悉这个哈希表了

答案 6 :(得分:3)

您可以轻松创建自定义KeyValuePair类

public class Key<K, V>{

    K key;
    V value;

    public Key() {

    }

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

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

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

}

答案 7 :(得分:0)

我最喜欢的是

HashMap<Type1, Type2>

您所要做的就是为Type1指定键的数据类型,为Type2指定值的数据类型。它是我在Java中看到的最常见的键值对象。

https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html

答案 8 :(得分:0)

我已在NameValuePair发布GlobalMentor's core library课程,可在Maven中找到。这是一个历史悠久的ongoing project,因此请提交任何更改或改进请求。

答案 9 :(得分:0)

Hashtable<String, Object>

它比java.util.Properties好,而Hashtable<Object, Object>实际上是[ { "tempreture": 30.8, "humidity": 19, "co2": 1401.0774788665333, "dateTime": "2019-02-03T03:11:59.128Z" }, { "tempreture": 30, "humidity": 19, "co2": 1164.9029618098828, "dateTime": "2019-02-03T02:51:50.097Z" }, { "tempreture": 29.8, "humidity": 19, "co2": 1122.6781464089433, "dateTime": "2019-02-03T02:46:47.742Z" }, { "tempreture": 29.7, "humidity": 19, "co2": 1122.6781464089433, "dateTime": "2019-02-03T02:26:38.580Z" } ] 的扩展。