package com.itheima.demo05.Collections;
import java.util.ArrayList;
import java.util.Collections;
/*
- java.utils.Collections 是集合工具类,用来对集合进行操作。部分方法如下:public static <T> void sort(List<T> list): 将集合中元素按照默认规则排序。注意:
sort(List<T> list) 使用前提
被排序的集合里边存储的元素, 必须实现 Comparable, 重写接口中的方法 compareTo 定义排序的规则
Comparable 接口的排序规则:
自己 (this)- 参数: 升序
*/
public class Demo02Sort {
public static void main(String[] args) {ArrayList<Integer> list01 = new ArrayList<>();
list01.add(1);
list01.add(3);
list01.add(2);
System.out.println(list01);//[1, 3, 2]
//public static <T> void sort(List<T> list): 将集合中元素按照默认规则排序。Collections.sort(list01);// 默认是升序
System.out.println(list01);//[1, 2, 3]
ArrayList<String> list02 = new ArrayList<>();
list02.add("a");
list02.add("c");
list02.add("b");
System.out.println(list02);//[a, c, b]
Collections.sort(list02);
System.out.println(list02);//[a, b, c]
ArrayList<Person> list03 = new ArrayList<>();
list03.add(new Person("张三",18));
list03.add(new Person("李四",20));
list03.add(new Person("王五",15));
System.out.println(list03);//[Person{name='张三', age=18}, Person{name='李四', age=20}, Person{name='王五', age=15}]
Collections.sort(list03);
System.out.println(list03);
}
}
package com.itheima.demo05.Collections;
public class Person implements Comparable<Person>{
private String name;
private int age;
public Person() {}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
// 重写排序的规则
@Override
public int compareTo(Person o) {
//return 0;// 认为元素都是相同的
// 自定义比较的规则, 比较两个人的年龄 (this, 参数 Person)
//return this.getAge() - o.getAge();// 年龄升序排序
return o.getAge() - this.getAge();// 年龄升序排序
}
}