/*
java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:
public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。
注意:
sort(List<T> list)使用前提
被排序的集合里边存储的元素,必须实现Comparable,重写接口中的方法compareTo定义排序的规则
Comparable接口的排序规则:
自己(this)-参数:升序
*/
package day3;
import java.util.*;
public class Sorttes {
public static void main(String[] args) {
demo01(1,5,3,2,7,2);
demo02(1,3,2,5,6,8);
Person p1 = new Person(25,"vergil");
Person p2 = new Person(24,"danti");
demo03(p1,p2);
}
/*
对自定义数据类型进行排序钱先在类里面重写compareTo方法
*/
private static void demo03(Person... args) {
List<Person> a = new ArrayList<>();
for (Person i : args) {
a.add(i);
}
Collections.sort(a);
System.out.println(a);
}
/*
java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:
public static <T> void sort(List<T> list,Comparator<? super T> ):将集合中元素按照指定规则排序。
Comparator和Comparable的区别
Comparable:自己(this)和别人(参数)比较,自己需要实现Comparable接口,重写比较的规则compareTo方法
Comparator:相当于找一个第三方的裁判,比较两个
Comparator的排序规则:
o1-o2:升序
*/
private static void demo02(int... args) {
List<Integer> a = new ArrayList<>();
for(int i : args){
a.add(i);
}
Collections.sort(a, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(a);
}
private static void demo01(int... args) {
List<Integer> a = new ArrayList<>();
for (int i : args){
a.add(i);
}
Collections.sort(a);
System.out.println(a);
}
}
Person类:
package day3;
import java.util.Objects;
public class Person implements Comparable<Person>{
private int age;
private String name;
public Person() {
}
public Person(int age, String name) {
this.age = age;
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(age, 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;
}
//重写compareTo
@Override
public int compareTo(Person o) {
return this.getAge() - o.getAge();//升序
}
}
java—Sort类
于 2022-01-10 22:27:57 首次发布