添加到java集合

时间:2016-03-07 15:12:29

标签: java collections linda

我有这段代码

public class TupleSpace implements aTupleSpace {
private Collection<aTuple> theSpace;
public TupleSpace() { 
    theSpace
}

public void out(aTuple v) {
    theSpace.add(v);}
<。> .add会导致错误,我认为是因为.add没有为通用集合类型定义?或者因为我没有正确理解这一行:

private Collection<aTuple> theSpace;

我必须保持这一行相同,但可以对out方法或类的其余部分进行任何更改

我只是希望能够将内容添加到集合中并搜索集合中的内容

1 个答案:

答案 0 :(得分:2)

集合只是一个界面。

它定义了您可以使用theSpace执行的操作,并且与theSpace实际上的内容有些无关。它可能是列表或地图或完全不同的东西。

Collection.add(E e)确实是所有集合共有的方法。实际的实施可能会有所不同。

但是,private Collection<aTuple> theSpace;只是声明变量。 创建null的实例时,它将设置为TupleSpace。 这是您尝试使用theSpace时抛出NullPointerException的原因。

因此,您需要创建一个具体的Collection实例并将其分配给theSpace,然后才能使用它(例如添加对象)。

有很多可以与SDK一起使用的Collection类型。 选择一个适合您的用例。下面是一个使用ArrayList:

的示例
// ...
public TupleSpace() { 
    this.theSpace = new ArrayList<aTuple>();
}
// ...