我正在尝试创建一个包含'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。

08-03 21:41