Java集合/集合问题
我刚开始学习Java,有一些关于集合的基本问题。我想创建一个名为DirectedGraph的类,它有两个属性,一组顶点和一组边。对于这些集合,最好的数据结构是什么?Java似乎有几个集合的实现,我可能只想使用最基本、最没有特性的集合 此外,当我尝试设置属性Java集合/集合问题,java,collections,set,Java,Collections,Set,我刚开始学习Java,有一些关于集合的基本问题。我想创建一个名为DirectedGraph的类,它有两个属性,一组顶点和一组边。对于这些集合,最好的数据结构是什么?Java似乎有几个集合的实现,我可能只想使用最基本、最没有特性的集合 此外,当我尝试设置属性顶点和边时,会出现类似“类型无法解析集合”或“语法错误,请插入“维度”以完成引用类型”的错误。下面是一些代码以及我尝试过的其他内容: import java.util.Collections; public class DirectedGra
顶点
和边
时,会出现类似“类型无法解析集合”或“语法错误,请插入“维度”以完成引用类型”的错误。下面是一些代码以及我尝试过的其他内容:
import java.util.Collections;
public class DirectedGraph {
private Set<> vertices;
// here are some other guesses that also didn't work:
// private Set<int[]> vertices;
// private Set<Integer> vertices;
// private Set<Integer> vertices = new HashSet<Integer>();
}
import java.util.Collections;
公共类定向图{
私有集顶点;
//以下是一些同样不起作用的猜测:
//私有集顶点;
//私有集顶点;
//私有集顶点=新HashSet();
}
这些错误是怎么回事
编辑:
如果我想要一个构造函数,它不带参数,但将
顶点
和边
集初始化为空,我该怎么做呢?您只是缺少集
类的导入语句
import java.util.Collections;
导入java.util.Set;// 您只是缺少Set
类的import语句
import java.util.Collections;
导入java.util.Set;//你只是错过了导入<代码>导入java.util.Set
谢谢,我需要使用整数而不是int?我以前尝试过导入java.util.Set,但我想我这么做时在类中使用了错误的代码。集合只能保存引用类型。不是原始类型。Integer是引用类型,int[]是引用类型,但int是基元类型。要初始化空的可变集,可以使用newhashset()
或newtreeset()
(或您希望使用的任何其他集合实现)。对于不可变的空集,请使用Collections.emptySet()
。Java教程和javadoc中涵盖了您的所有问题:@dsaxton请仔细阅读我的答案。java.lang
之外的每个类都需要导入HashSet
就是其中之一;)。你只是错过了导入<代码>导入java.util.Set
谢谢,我需要使用整数而不是int?我以前尝试过导入java.util.Set,但我想我这么做时在类中使用了错误的代码。集合只能保存引用类型。不是原始类型。Integer是引用类型,int[]是引用类型,但int是基元类型。要初始化空的可变集,可以使用newhashset()
或newtreeset()
(或您希望使用的任何其他集合实现)。对于不可变的空集,请使用Collections.emptySet()
。Java教程和javadoc中涵盖了您的所有问题:@dsaxton请仔细阅读我的答案。java.lang
之外的每个类都需要导入HashSet
就是其中之一;)。
import java.util.Collections;
import java.util.Set; // <-- needs to import Set to use it
public class DirectedGraph {
private Set<> vertices;
// here are some other guesses that also didn't work:
// private Set<int[]> vertices;
// private Set<Integer> vertices;
// private Set<Integer> vertices = new HashSet<Integer>(); // <-- this would need "import java.util.HashSet" to compile
}