在Java中对ArrayList <class>进行排序

Bba*_*bis 0 java sorting arraylist

我有这门课:

public class Contact {
private  String firstname;
private String lastname;
private List<Integer> phoneNumber;
private Scanner in;
public Contact(){
    phoneNumber = new ArrayList<>();
    firstname = lastname = "";
    in = new Scanner(System.in);
}
public void setFirstName(){
    firstname = in.nextLine();
} 
public  void setLastName(){
    lastname = in.nextLine();
}
public void setPhoneNumber(){
    phoneNumber.add(in.nextInt());
}
public String getFirstName(){
    return firstname;
}
public  String getLastName(){
    return lastname;
}
public  Integer getPhoneNumber(int position){
    return phoneNumber.get(position);
}
}
Run Code Online (Sandbox Code Playgroud)

现在我想制作一个有我联系人的电话簿..我想用它

Arraylist<Contact>
Run Code Online (Sandbox Code Playgroud)

因为它没有固定的大小..当我想用Lastname对这个arraylist进行排序时,我该怎么办?

Tom*_*Tom 5

您的Contact类需要实现Comparable接口......然后您可以使用Collections.sort(list)对列表进行排序.

编辑:如果您想要多种排序方式,那么您还可以创建一个实现Comparator接口的类.您可以创建多个比较器(或使一个可配置),然后您可以将比较器作为第二个参数传递给Collections.sort

以下是解释比较器解决方案的链接:http://www.vogella.com/blog/2009/08/04/collections-sort-java/