我正在尝试创建一个包含'Vertex3 '实例的Set。我在创建集合的行上有点问题:
public Set<Vertex3<Integer>> verticies = new Set<Vertex3<Integer>>();
Eclipse在等号右边的“ Set”部分用红色下划线,并带有错误消息“无法实例化Set >”类型。
“ Vertex3 ”的定义如下:
public class Vertex3 <T> {
public T x;
public T y;
public T z;
public Vertex3() {
// do nothing
}
public Vertex3(T x, T y, T z) {
this.x = x;
this.y = y;
this.z = z;
}
public Vertex3(T x, T y) {
this.x = x;
this.y = y;
}
}
可以提供的任何帮助表示赞赏。
最佳答案
Set是一个接口,这就是为什么您不能实例化它。您必须实例化一个具体的Type,例如HashSet(或TreeSet或LinkedHashSet):
public Set<Vertex3<Integer>> verticies = new HashSet<Vertex3<Integer>>();
HashSet和LinkedHashSet存储唯一值... HashSet的性能优于LinkedHashSet,您可能要使用HashSet。