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

Java 条目列表,如何添加新条目?,java,Java,在Java中,我实现了以下功能: List<Entry<String, Integer>> listObjects = new ArrayList<Entry<String, Integer>>(); List listObjects=new ArrayList(); 但是如何添加新条目 因为它不适用于:listObjects.add(newentry()) 提前感谢。也许listObjects.add(新条目(“abc”,1))?泛型指定类型

在Java中,我实现了以下功能:

List<Entry<String, Integer>> listObjects = new ArrayList<Entry<String, Integer>>();
List listObjects=new ArrayList();
但是如何添加新条目

因为它不适用于:
listObjects.add(newentry())


提前感谢。

也许
listObjects.add(新条目(“abc”,1))?泛型指定类型(
String
Integer
),而不是值(
abc
1

编辑-注意,后来添加了
条目
实际上是
Map.Entry
,因此您需要创建一个
Map.Entry
的实现,稍后将其实例化,正如所选答案所解释的。

Entry
是一个参数化类,您需要使用构造函数创建
Entry
的实例(典型方式)

在不知道
条目的实现情况下
:这可能已经起作用了(至少它显示了它通常的工作方式):

你是说?这是一个接口(因此,如果没有实现类,就无法实例化)<代码>条目
实例通常仅由实现创建,并且仅通过

当然,由于它是一个接口,您可以添加自己的实现,如下所示:

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;
    }
}
公共类MyEntry实现入口{
私钥;
私人价值;
公共MyEntry(最终K密钥){
this.key=key;
}
公共MyEntry(最终K键,最终V值){
this.key=key;
这个值=值;
}
公共K getKey(){
返回键;
}
public V getValue(){
返回值;
}
公共V设置值(最终V值){
最终V oldValue=此值;
这个值=值;
返回旧值;
}
}
这样你就可以做
listObjects.add(newmyentry(“abc”,1))


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

使用现成的
条目实现的一种方法是

类似这样的
listObjects.add(Maps.immutableEntry(“abc”,1))

我知道这是一个非常旧的线程,但您可以按如下方式执行:

listObjects.add(new java.util.AbstractMap.SimpleEntry<String, Integer>("abc", 1));
listObjects.add(newjava.util.AbstractMap.SimpleEntry(“abc”,1));
这可能会帮助像我这样的人,他最近正试图这样做


我希望它有帮助:-)

所有问题都应该有预期行为和实际行为(您案例中产生的错误)。javac/Eclipse/NetBeans(或者JRE,如果它是运行时的东西)说的实际问题是什么?你能给出一个“简洁”的答案吗?什么是“不工作”实际上意味着什么?我不能创建一个新的条目对象!对于有相同问题的任何人,请确保选中问题.listObjects.add(新条目(“abc”,1));也可以。谢谢@尽管你是对的,但是最初的问题没有提到
Map.Entry
;OP在给出答案后澄清了这一点;当然,在这种情况下,您必须实现
Map.Entry
并实例化泛型误用非常明显,我没有想到:)删除我的answerGuava不能处理null元素。并非在所有情况下都有用。
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;
    }
}
listObjects.add(new java.util.AbstractMap.SimpleEntry<String, Integer>("abc", 1));