Java - не могу найти символ (коллекция сортировки arrayList) - PullRequest
3 голосов
/ 23 декабря 2010

Привет, я столкнулся с проблемой при сортировке arrayList следующим образом (и да, я импортировал утилиту):

    Collections.sort(personer);

У меня есть этот список:

private List<Person> personer;

public Register() {
    personer = new ArrayList<Person>();
}

Но я получил ошибку:

mittscript.java: 45: не удается найти символ символ: метод расположение (java.util.List): класс java.util.Collections Collections.sort (personer);

Ответы [ 3 ]

4 голосов
/ 23 декабря 2010

Я ответил вам в вашем другом посте java - в алфавитном порядке (список)

Я верю, что если ты это сделаешь, исправишь твои проблемы.

Collection<Person> listPeople = new ArrayList<Person>();

Класс Person.java будет реализовывать Сопоставимые

public class Person implements Comparable<Person>{

public int compareTo(Person person) {
  if(this.name != null && person.name != null){
   return this.name.compareToIgnoreCase(person.name);
  }
  return 0;
 }

}

Как только у вас есть это, в классе вы добавляете людей, когда вы закончите добавив, наберите:

Collections.sort(listPeople);
2 голосов
/ 23 декабря 2010

Вы должны реализовать Comparable < T > Interface

2 голосов
/ 23 декабря 2010

В Collections есть два sort метода.Вы можете либо сделать Person реализовать интерфейс Comparable, либо предоставить компаратор в качестве второго аргумента в sort.
В противном случае у JVM нет возможности узнать, какой объект Person «больше» или «меньше»чем другое.

Подробнее см. в документах.

Итак, вариант 1

class Person implements Comparable {
    ...
}

Collections.sort(list);

и вариант 2

Collections.sort(list, myCustomComparator);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...