Java集合/集合问题

Java集合/集合问题,java,collections,set,Java,Collections,Set,我刚开始学习Java,有一些关于集合的基本问题。我想创建一个名为DirectedGraph的类,它有两个属性,一组顶点和一组边。对于这些集合,最好的数据结构是什么?Java似乎有几个集合的实现,我可能只想使用最基本、最没有特性的集合 此外,当我尝试设置属性顶点和边时,会出现类似“类型无法解析集合”或“语法错误,请插入“维度”以完成引用类型”的错误。下面是一些代码以及我尝试过的其他内容: import java.util.Collections; public class DirectedGra

我刚开始学习Java,有一些关于集合的基本问题。我想创建一个名为DirectedGraph的类,它有两个属性,一组顶点和一组边。对于这些集合,最好的数据结构是什么?Java似乎有几个集合的实现,我可能只想使用最基本、最没有特性的集合

此外,当我尝试设置属性
顶点
时,会出现类似“类型无法解析集合”或“语法错误,请插入“维度”以完成引用类型”的错误。下面是一些代码以及我尝试过的其他内容:

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
}