1. 调用java.util.Collections.sort(List list)方法进行排序
List内的Object都必须实现了Comparable接口
public class Account implements Comparable {
private String name;
private String accessLevel;
public Account(String name,String accessLevel) {
this.name = name;
this.accessLevel = accessLevel;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAccessLevel(String accessLevel) {
this.accessLevel = accessLevel;
}
public String getAccessLevel() {
return accessLevel;
}
public int compareTo(Object o) {
Account account = (Account)o;
return this.getName().compareTo(account.getName());
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestAccount {
public static void main(String[] args) {
List<Account> accountList = new ArrayList<Account>();
accountList.add(new Account("abc","12"));
accountList.add(new Account("qbc","12"));
accountList.add(new Account("fbc","11"));
accountList.add(new Account("gbc","11"));
accountList.add(new Account("wbc","15"));
Collections.sort(accountList);
for(Account account:accountList){
System.out.println(account.getName()+" "+account.getAccessLevel());
System.out.println("-------");
}
}
}
2. 调用 java.util.Collections.sort(List list,Comparator c)
public class Person {
private String name;
private String age;
public Person(String name,String age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(String age) {
this.age = age;
}
public String getAge() {
return age;
}
}
声明一个PersonComparator类
import java.util.Comparator;
public class PersonComparator implements Comparator {
public PersonComparator() {
super();
}
public int compare(Object o1, Object o2) {
Person person1 = (Person)o1;
Person person2 = (Person)o2;
int compareTo = person1.getName().compareTo(person2.getName());
if(compareTo == 0){
compareTo = person1.getAge().compareTo(person2.getAge());
}
return compareTo;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestPerson {
public static void main(String[] args) {
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("abc","32"));
personList.add(new Person("abc","12"));
personList.add(new Person("fbc","22"));
personList.add(new Person("gbc","52"));
personList.add(new Person("wbc","12"));
PersonComparator personComp = new PersonComparator();
Collections.sort(personList,personComp);
for(Person person:personList){
System.out.println(person.getName()+" "+person.getAge());
System.out.println("-------");
}
}
}
临时声明一个Comparator 来实现排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class TestPerson {
public static void main(String[] args) {
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("abc","32"));
personList.add(new Person("abc","12"));
personList.add(new Person("fbc","22"));
personList.add(new Person("gbc","52"));
personList.add(new Person("wbc","12"));
Collections.sort(personList,new Comparator<Person>(){
public int compare(Person o1, Person o2) {
Person person1 = (Person)o1;
Person person2 = (Person)o2;
int compareTo = person1.getName().compareTo(person2.getName());
if(compareTo == 0){
compareTo = person1.getAge().compareTo(person2.getAge());
}
return compareTo;
}
});
// PersonComparator personComp = new PersonComparator();
// Collections.sort(personList,personComp);
for(Person person:personList){
System.out.println(person.getName()+" "+person.getAge());
System.out.println("-------");
}
}
}