条目列表,如何添加新条目?

oli*_*dev 6 java

在Java中,我正在实现这个:

List<Entry<String, Integer>> listObjects = new ArrayList<Entry<String, Integer>>();
Run Code Online (Sandbox Code Playgroud)

但是如何添加新条目?

因为它不适用于: listObjects.add(new Entry<"abc", 1>());

提前致谢.

小智 11

我知道这是一个相当老的线程,但你可以这样做:

listObjects.add(new java.util.AbstractMap.SimpleEntry<String, Integer>("abc", 1));
Run Code Online (Sandbox Code Playgroud)

它可能会帮助像我这样的人,他最近试图这样做!

我希望它有所帮助:-)


Sea*_*oyd 5

你的意思是Map.Entry?这是一个接口(因此,如果没有实现类,您无法实例化,您可以在Java教程中了解接口).Entry实例通常只由Map实现创建,只能通过实现Map.entrySet()

当然,因为它是一个接口,你可以添加自己的实现,如下所示:

public class MyEntry<K, V> implements Entry<K, V> {
    private final K key;
    private V value;
    public MyEntry(final K key) {
        this.key = key;
    }
    public MyEntry(final K key, final V value) {
        this.key = key;
        this.value = value;
    }
    public K getKey() {
        return key;
    }
    public V getValue() {
        return value;
    }
    public V setValue(final V value) {
        final V oldValue = this.value;
        this.value = value;
        return oldValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以做到 listObjects.add(new MyEntry<String,Integer>("abc", 1))

但是,在地图上下文之外,这并没有真正意义.