我是一种获取数字列表(例如ArrayList
)并将其转换为有序集合(例如TreeSet
)并返回它的方法。我写了代码,但是我遇到了一些问题。
public TreeSet getSort (ArrayList list){
TreeSet set =new TreeSet(list);
return set;
我的问题是主要的:
ArrayList List = new ArrayList();
List.add(5);
List.add(55);
List.add(88);
List.add(555);
List.add(154);
System.out.println("the TreeSet of ArrayList is : " + getSort(List));
答案 0 :(得分:3)
您需要让类实例调用getSort()
方法或将getSort()
设为static
喜欢
System.out.println("the TreeSet of ArrayList is : "+ new classname().getSort(List));
或使方法静态
public static TreeSet getSort (ArrayList list){
TreeSet set =new TreeSet(list);
return set;
}
答案 1 :(得分:2)
由于getSort()
不是static
,您可能会收到错误,因此无法从main()
调用此错误。除此之外,你不应该使用raw types,参数化你的列表和集合:
ArrayList<Integer> list = ...
TreeSet<Integer> set = ...
你应该收到有关此事的警告。
事实上,我会完全使用这个方法generic:
public static <V extends Comparable<V>> TreeSet<V> getSort(List<V> list) {
return new TreeSet<>(list);
}
最后,请记住遵循命名约定:局部变量名称应以小写字母开头(即list
而不是List
)。
答案 2 :(得分:1)
getSort()
不是静态的,无法从main调用。你需要让它静止。