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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/23137758/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 21:00:44  来源:igfitidea点击:

Converts ArrayList into a sorted set (TreeSet) and returns it

javaarraylist

提问by Good tree

I a method that takes a list of numbers (e.g. ArrayList) and converts it into a sorted set (e.g. TreeSet) and returns it. I wrote code, but I'm having some problems.

我是一个方法,它接受一个数字列表(例如ArrayList)并将其转换为一个有序集合(例如TreeSet)并返回它。我写了代码,但我遇到了一些问题。

public TreeSet getSort (ArrayList list){
   TreeSet set =new TreeSet(list);
    return set;

My problem is in main:

我的问题主要是:

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));

采纳答案by Nambi

You need to have the class instance to call the getSort()method or make the getSort()to static

你需要有类的实例来调用getSort()方法,或使getSort()static

Do like

喜欢

System.out.println("the TreeSet of ArrayList is : "+ new classname().getSort(List));

or make the method static

或使方法静态

    public static TreeSet getSort (ArrayList list){
       TreeSet set =new TreeSet(list);
        return set;
         }

回答by arshajii

You're probably getting an error because getSort()isn't static, so it can't be called from main(). Beyond this, you shouldn't use raw types, parametrize your lists and sets:

您可能会收到错误,因为getSort()is not static,因此无法从 调用它main()。除此之外,你不应该使用原始类型,参数化你的列表和集合:

ArrayList<Integer> list = ...

TreeSet<Integer> set = ...

You should be getting warnings about this.

您应该收到有关此的警告。

In fact, I would make this method totally generic:

事实上,我会让这个方法完全通用

public static <V extends Comparable<V>> TreeSet<V> getSort(List<V> list) {
    return new TreeSet<>(list);
}

Lastly, remember to follow naming conventions: local variable names should start with a lowercase letter (i.e. listand not List).

最后,请记住遵循命名约定:局部变量名称应以小写字母开头(即list而不是List)。

回答by Anubian Noob

getSort()isn't static and can't be called from main. You need to make it static.

getSort()不是静态的,不能从主调用。你需要让它静态。