Java 方法将Arraylist转换为集合
我编写了以下方法以将Arraylist转换为集合:Java 方法将Arraylist转换为集合,java,arraylist,set,Java,Arraylist,Set,我编写了以下方法以将Arraylist转换为集合: public static Set<Animal> toSet(){ Set<Animal> aniSet = new HashSet<Animal>(animals); return aniSet; } 我想这样做: public static Set<Animal> toSet(){ return HashSet<Animal>(animals); }
public static Set<Animal> toSet(){
Set<Animal> aniSet = new HashSet<Animal>(animals);
return aniSet;
}
我想这样做:
public static Set<Animal> toSet(){
return HashSet<Animal>(animals);
}
为什么我会收到一条错误消息,说它找不到变量HashSet?我需要先存储变量吗
编辑:必须在我的哈希集之前添加新的。编码让我觉得自己很笨:“这段代码有两个问题: 你忘记了动物必须来自某个地方;我认为第一个例子也不能编译;和 创建新哈希集时忘记使用new。 这可能是预期的行为:
public static <T> Set<T> toSet(Collection<? extends T> data){
return new HashSet<T>(data);
}
然后,您可以通过以下方式调用它:
ArrayList<Animal> animals = new ArrayList<>();
//do something with the animals list
//...
Set<Animal> theSet = Foo.<Animal>toSet(animals);
通过使用泛型静态方法,可以使用任何类型调用它。通过使用Collections,你忘记了新事物以及动物必须来自某个地方这一事实。