9 public class Test03 {
10     public static void main(String[] args) {
11         //1)定义List集合存储Student对象, 通过泛型指定存储元素类型为Student
12         List<Student> list = new ArrayList<>();
13 
14         //2) 向集合中添加元素19         list.add(new Student("wangwu", 26, 78));
20         list.add(new Student("zhaoliu", 23, 78.5));
21         list.add(new Student("chenqi", 27, 78.8));
22         list.add(new Student("zhangsan", 21, 86));
23         list.add(new Student("feifei", 26, 54));41 
42         //6) 对集合中学生对象根据年龄升序排序
43         list.sort(new Comparator<Student>() {
44             @Override
45             public int compare(Student o1, Student o2) {
46                 //o1的年龄大返回正数
47                 return o1.getAge() - o2.getAge();
48             }
49         });61 
62         //8)根据姓名升序排序
63         list.add(new Student("陈飞", 18, 99));
64         list.add(new Student("张晓三", 18, 29));
65         list.add(new Student("李大四", 68, 79));
66         list.sort(new Comparator<Student>() {
67             @Override
68             public int compare(Student o1, Student o2) {
69                 return o1.getName().compareTo(o2.getName());
70                 //compareTo()方法比较的是字符的码值
71             }
72         });
73         printInfo(list);
74 
75         //9) 根据姓名升序排序, 根据汉字顺序比较
76         //先获得一个汉字的比较器
77         Comparator cmp = Collator.getInstance(Locale.CHINESE);
78         list.sort(new Comparator<Student>() {
79             @Override
80             public int compare(Student o1, Student o2) {
81                 return cmp.compare(o1.getName(), o2.getName());
82             }
83         });
84         printInfo(list);
85 
86     }94 }
 
 
package list;
import java.text.Collator;
import java.util.*;
/**
 * List集合存储Student对象
*/
public class Test03 {
    public static void main(String[] args) {
        //1)定义List集合存储Student对象, 通过泛型指定存储元素类型为Student
List<Student> list = new ArrayList<>();
        //2) 向集合中添加元素
Student stu = new Student();
        list.add(stu);
        Student stu2 = new Student("lisi", 22, 98);
        list.add(stu2);
        list.add(new Student("wangwu", 26, 78));
        list.add(new Student("zhaoliu", 23, 78.5));
        list.add(new Student("chenqi", 27, 78.8));
        list.add(new Student("zhangsan", 21, 86));
        list.add(new Student("feifei", 26, 54));
        //3)调用方法打印List集合
printInfo( list );
        //4) 判断集合中是否包含指定的Student对象, list接口引用了ArrayList对象, 通过list调用contains()方法实际执行的是ArrayList对象的contains()方法, 这是接口多态.  在ArrayList的contains()源码中,判断两个元素是否一样调用了equals()方法, 当前ArrayList存储的Student对象, 需要在Student类中重写equals()方法
System.out.println( list.contains( stu ) );         //true
stu = new Student("zhangsan", 21, 86);
        System.out.println( list.contains(stu));    //true
        //5)把list集合中成绩小于70分的同学都删除. 迭代删除
for (Iterator<Student> iterator = list.iterator(); iterator.hasNext(); ) {
            Student student = iterator.next();
            if ( student.getScore() < 70 ){
                iterator.remove();
            }
        }
        printInfo(list);
        //6) 对集合中学生对象根据年龄升序排序
list.sort(new Comparator<Student>() {
            @Override
public int compare(Student o1, Student o2) {
                //o1的年龄大返回正数
return o1.getAge() - o2.getAge();
            }
        });
        printInfo(list);
        //7)对集合中的元素根据成绩降序排序
list.sort(new Comparator<Student>() {
            @Override
public int compare(Student o1, Student o2) {
                //o2的成绩大返回正数
return Double.compare(o2.getScore() , o1.getScore());
            }
        });
        printInfo(list);
        //8)根据姓名升序排序
list.add(new Student("陈飞", 18, 99));
        list.add(new Student("张晓三", 18, 29));
        list.add(new Student("李大四", 68, 79));
        list.sort(new Comparator<Student>() {
            @Override
public int compare(Student o1, Student o2) {
                return o1.getName().compareTo(o2.getName());
                //compareTo()方法比较的是字符的码值
}
        });
        printInfo(list);
        //9) 根据姓名升序排序, 根据汉字顺序比较
//先获得一个汉字的比较器
Comparator cmp = Collator.getInstance(Locale.CHINESE);
        list.sort(new Comparator<Student>() {
            @Override
public int compare(Student o1, Student o2) {
                return cmp.compare(o1.getName(), o2.getName());
            }
        });
        printInfo(list);
    }
    private static void printInfo(List<Student> list) {
        System.out.println("-------学生信息-----------");
        for (Student student : list) {
            System.out.println( student);
        }
    }
}