我想将我的设置初始化为空(不为空),任何人都可以帮助我吗? 这是我的代码
public class Graph {
private Set<Vertex> vertices;
public Graph() {
vertices = {};
}
我知道这是一种错误的做法,但却无能为力
答案 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