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();
    }
}

 

posted @ 2017-03-14 16:43  BrightFeng  阅读(127)  评论(0)    收藏  举报