package com.wkcto.lambda;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class ComparatorTest {
public static void main(String[] args) {
//排序Integer类型
List<Integer> integerList = Arrays.asList(3, 2, 4, 8, 7);
//将integerList中的元素从小到大排序
integerList.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
System.out.println(integerList); //[2, 3, 4, 7, 8]
//将integerList中的元素从大到小排序
integerList.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
System.out.println(integerList);//[8, 7, 4, 3, 2]
//排序String类型
List<String> stringList = Arrays.asList("a", "g", "c", "e", "f", "d");
//将stringList按照字母从小到大排序
stringList.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
System.out.println(stringList);//[a, c, d, e, f, g]
//将stringList按照字母从大到小排序
stringList.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
System.out.println(stringList);//[g, f, e, d, c, a]
//创建三个Person对象存入List
Person zhangsan = new Person("zhangsan", 20);
Person lisi = new Person("lisi", 21);
Person wangwu = new Person("wangwu", 22);
//目前List中年龄排序为:21,20,22
List<Person> list = Arrays.asList(lisi,zhangsan,wangwu);
//按照年龄从小到大排序
list.sort(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge().compareTo(o2.getAge());
}
});
System.out.println(list);//[Person{name='zhangsan', age=20}, Person{name='lisi', age=21}, Person{name='wangwu', age=22}]
//按照姓名的首字母进行排序
list.sort(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getName().compareTo(o2.getName());
}
});
System.out.println(list);//[Person{name='lisi', age=21}, Person{name='wangwu', age=22}, Person{name='zhangsan', age=20}]
}
}
class Person{
private String name;
private Integer age;
public String getName() {
return name;
}
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Comparator比较器
最新推荐文章于 2023-07-03 19:35:18 发布