4

可能重复:
按字母顺序排序列表

我如何按字母顺序存储我的输入,我将名称输入到一个数组列表中:

    persons.add(person);

怎么做?

4

4 回答 4

9

实现Comparator< T >接口

class A implements Comparator < Person > {

    @Override
    public int compare(Person o1, Person o2) {
        if(o1.getName() != null && o2.getName() != null){
            return o1.getName().compareTo(o2.getName());
        }

        return 0;
    }

}

然后使用Collections.sort(/* list here */, /* comparator here*/)

于 2010-12-23T13:21:07.630 回答
5
Collection<Person> listPeople = new ArrayList<Person>();

Person.java 类将实现 Comparable

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);
于 2010-12-23T13:14:08.397 回答
5

尝试这个:

 java.util.Collections.sort(people);
于 2010-12-23T13:09:20.990 回答
0

使用 TreeSet 而不是 ArrayList

于 2010-12-23T13:08:08.177 回答