Преобразует ArrayList в отсортированный набор (TreeSet) и возвращает его

I метод, который берет список чисел (например, 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));

person Good tree    schedule 17.04.2014    source источник
comment
Выдает мне ошибку в распечатке   -  person Good tree    schedule 17.04.2014


Ответы (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;
         }
person Nambi    schedule 17.04.2014

Вероятно, вы получаете сообщение об ошибке, потому что getSort() не является static, поэтому его нельзя вызвать из main(). Помимо этого, вам не следует использовать необработанные типы, параметризуйте свои списки и наборы:

ArrayList<Integer> list = ...

TreeSet<Integer> set = ...

Вы должны получать предупреждения об этом.

На самом деле, я бы сделал этот метод полностью универсальным:

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

Наконец, не забывайте следовать соглашениям об именах: имена локальных переменных должны начинаться со строчной буквы (т. е. list, а не List).

person arshajii    schedule 17.04.2014
comment
Было бы несколько обобщенно принять List<V>, а не ArrayList<V>. - person Paul; 17.04.2014
comment
Или, на самом деле, Collection<V>. - person Paul; 17.04.2014

getSort() не является статическим и не может быть вызван из main. Вам нужно сделать его статичным.

person Anubian Noob    schedule 17.04.2014