我正在尝试创建一个包含‘Vertex3 3’实例的集合。我对创建这个集合的行有一点小问题:
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;
}
}如能提供任何帮助,我们将不胜感激。
发布于 2012-06-19 19:54:45
Set是一个接口,所以不能实例化它。您必须实例化一个具体类型,如HashSet (或TreeSet,或LinkedHashSet):
public Set<Vertex3<Integer>> verticies = new HashSet<Vertex3<Integer>>();HashSet和LinkedHashSet存储唯一的值..。HashSet的性能优于LinkedHashSet,您可能希望使用HashSet。
发布于 2012-06-19 19:54:43
Set是一个接口,正如javadoc建议的那样:http://docs.oracle.com/javase/6/docs/api/java/util/Set.html,因此不能实例化它。
您应该查看All Known Implementing Classes并选择最适合您的实现,并使用new实例化它。
发布于 2012-06-19 19:55:05
Set是一个接口。您不能实例化它。用HashSet或TreeSet替换正确的部分。
https://stackoverflow.com/questions/11108365
复制相似问题