2010-12-23 63 views
3

可能重复:
Sort List Alphabetically爪哇 - 按字母顺序(名单)

我如何将输入存储按字母顺序排列,我输入的名称到一个ArrayList:

persons.add(person); 

如何做到这一点?

+0

只需使用收集的分类方法,其中传递的人员名单。 – 2010-12-23 13:13:22

+0

为什么你们不做家庭作业?一起来吧:http://stackoverflow.com/questions/1946668/sorting-using-comparator-descending-order-user-defined-classes。它被称为社交活动:) – 2010-12-23 13:20:52

回答

5

试试这个:

java.util.Collections.sort(people); 
0

使用TreeSet的,而不是ArrayList的

+1

不,事情是我必须使用ArrayList,因为我必须学习它。 – Jake 2010-12-23 13:09:11

5
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); 
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*/)