List排序整理
1.Collection.sort()方法
实现方法一:使用匿名内部类,实例化Compatator接口,实现compare方法
import java.util.*; /** * Created by hefeng on 14/03/2017. */ public class test { public static void print(List<Person> list){ for(Person person:list){ System.out.println("姓名"+person.getName()+",年龄:"+person.getAge()+" "); } } public static void test(){ Person A = new Person("hefeng",14); Person B = new Person("yinqin",15); Person C = new Person("bob",13); List<Person> list = new ArrayList<>(); list.add(A); list.add(B); list.add(C); System.out.println("排序前:"); print(list); Collections.sort(list, new Comparator<Person>() { @Override public int compare(Person person, Person t1) { return person.getAge()-t1.getAge();
//return person.getName.compareTo(person.getAge);//按字母顺序排序 } }); System.out.println("排序后:"); print(list); } public static void main(String[] args){ test(); } } class Person{ private String name; private int age; Person(String name,int age){ this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
方法2:在实体类实现Comparable接口,实现compareTo方法
class Person implements Comparable<Person>{ private String name; private int age; Person(String name,int age){ this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int compareTo(Person person) { return getAge()-person.getAge(); } }
方法三:创建一个类,实现Comparator接口
import java.util.*; /** * Created by hefeng on 14/03/2017. */ public class test { public static void print(List<Person> list){ for(Person person:list){ System.out.println("姓名"+person.getName()+",年龄:"+person.getAge()+" "); } } public static void test(){ Person A = new Person("hefeng",14); Person B = new Person("yinqin",15); Person C = new Person("bob",13); List<Person> list = new ArrayList<>(); list.add(A); list.add(B); list.add(C); System.out.println("排序前:"); print(list); Collections.sort(list,new sortedByAge()); System.out.println("排序后:"); print(list); } public static void main(String[] args){ test(); } } class Person { private String name; private int age; Person(String name,int age){ this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } class sortedByAge implements Comparator<Person>{ @Override public int compare(Person person, Person t1) { return person.getAge()-t1.getAge(); } }
浙公网安备 33010602011771号