将ArrayList转换为有序集(TreeSet)并返回它

时间:2014-04-17 15:50:16

标签: java arraylist

我是一种获取数字列表(例如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));

3 个答案:

答案 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调用。你需要让它静止。