如何使Set为空

时间:2013-02-25 13:39:10

标签: java set

我想将我的设置初始化为空(不为空),任何人都可以帮助我吗? 这是我的代码

public class Graph {
private Set<Vertex> vertices;

public Graph() {
    vertices = {};
}

我知道这是一种错误的做法,但却无能为力

4 个答案:

答案 0 :(得分:4)

Set是界面。您需要确定所需的实现,然后使用no-args构造函数进行构造。 e.g。

vertices = new HashSet<Vertex>();

vertices = new TreeSet<Vertext>();

有关TreeSet vs HashSet的详情,请参阅this SO question/answer。鉴于Set是一个接口,可能存在任意数量的实现(你甚至可以编写自己的实现)但我怀疑你会想要这两个中的一个开始。

答案 1 :(得分:1)

您需要执行构造函数:

public Graph() {
  vertices = new HashSet<>();
}

Set是一个接口定义,因此您需要选择Set的具体实现。 HashSet就是这样一种实现,但TreeSet是另一种实现(TreeSet实际上是SortedSet的实现。)

答案 2 :(得分:1)

public Graph(){  
  vertices = new HashSet<Vertex>();  
} 

public Graph(){  
  vertices = new TreeSet<Vertex>();  
}

答案 3 :(得分:1)

替换

vertices = {};

使用

vertices = new HashSet<Vertex>();

这将初始化HashSet界面

的空Set