250

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

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

4

10 回答 10

261

AbstractMap.SimpleEntry类是通用的并且很有用。

于 2010-06-04T09:59:06.907 回答
104

Android 程序员可以使用BasicNameValuePair

更新:

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

示例用法:

Pair<Integer, String> simplePair = new Pair<>(42, "Second");
Integer first = simplePair.first; // 42
String second = simplePair.second; // "Second"
于 2011-11-29T16:20:03.767 回答
52

Commons Lang 的 Pair 课程可能会有所帮助:

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

当然,您需要包含 commons-lang。

于 2012-11-06T13:57:42.507 回答
14

使用javafx.util.Pair足以满足可以实例化的任意两种类型的大多数简单键值对。

Pair<Integer, String> myPair = new Pair<>(7, "Seven");
Integer key = myPair.getKey();
String value = myPair.getValue();
于 2015-06-12T18:44:26.887 回答
11
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;
    }
}
于 2015-04-03T19:27:41.110 回答
8

我喜欢用

特性

例子:

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

如果您熟悉哈希表,您将对此非常熟悉

于 2018-04-25T14:49:00.093 回答
4

您可以轻松创建自定义 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;
    }

}
于 2020-01-28T09:00:48.127 回答
0

我最喜欢的是

HashMap<Type1, Type2>

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

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

于 2016-12-07T14:33:47.170 回答
-1

我在GlobalMentor 的核心库NameValuePair中发布了一个类,可在 Maven 中使用。这是一个历史悠久的正在进行的项目,因此请提交任何更改或改进请求。

于 2017-02-21T15:31:47.913 回答
-1
Hashtable<String, Object>

它比java.util.Properties事实上的扩展要好Hashtable<Object, Object>

于 2019-06-25T08:24:46.473 回答