-java.utils.Collections是集合工具类
用来对集合进行操作。部分方法如下:
public static void sort(List list):将集合中元素按照默认规则排序。
注意:
sort(List list)使用前提
被排序的集合里边存储的元素,必须实现Comparable,重写接口中的方法compareTo定义排序的规则
Comparable接口的排序规则:
自己(this) - 参数:升序
package com.Collections;
import java.lang.reflect.Array;
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 Demo02Collections {
public static void main(String[] args) {
ArrayList 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("老张",25));
list03.add(new Person("老王",26));
list03.add(new Person("小李",16));
System.out.println(list03);
Collections.sort(list03);
System.out.println(list03);
}
}
Person类(重写Comparable接口中的方法compareTo定义排序的规则)
package com.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(); //年龄升序
}
}
输出结果