[java]Comparable和Comparator
2021-02-03 19:15
标签:tostring price 逆序 collect array compare arrays integer list 这是一个接口,要让对象拥有比较能力,那么就可以继承这个接口,实现 compareTo 方法。 comparaTo返回1则排在后面,返回-1排前面
Comparator相当于一个比较器,可以对一类对象进行排序而无需继承 Comparable 接口 ,可以定制自己的排序器,只需要继承 Comparator接口就行 上面的 Goods 如果不想继承 Comparable 排序接口,当然也可以指定排序器对 ArrayList内置排序方法排序,指定排序规则
当然 Comparator 也有自己定义的很多排序规则和很多排序方法。可以结合 lambda表达式方便的排序 [java]Comparable和Comparator 标签:tostring price 逆序 collect array compare arrays integer list 原文地址:https://www.cnblogs.com/biningooginind/p/12800383.html1、Comparable
public class Goods implements Comparable
ArrayList
var array = new Goods[4];
array[0] = new Goods("a",22);
array[1] = new Goods("a",10);
array[2] = new Goods("a",99);
array[3] = new Goods("a",10);
Arrays.sort(array);
System.out.println(Arrays.toString(array));
2、Comparator
arr.sort(new Comparator
var ps = new Person[4];
ps[0] = new Person("bbc",10);
ps[1] = new Person("ABAw",18);
ps[2] = new Person("acd",1);
ps[3] = new Person("Babe",10);
Arrays.sort(ps, Comparator.comparing(Person::getName));
System.out.println(Arrays.toString(ps));
Arrays.sort(ps,Comparator.comparing(Person::getName,(s1,s2)->s1.length()-s2.length()).thenComparing(Person::getName)); //根据名字长度排序 相同则按字母排
Arrays.sort(ps,Comparator.comparingInt(p->p.getName().length()));
System.out.println(Arrays.toString(ps));
System.out.println(Arrays.toString(ps));
文章标题:[java]Comparable和Comparator
文章链接:http://soscw.com/index.php/essay/50551.html