介绍
这期内容当中小编将会给大家带来有关Java番石榴使用顺序排序器的方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>一创建排序器强>
排序器:可以用来为构建复杂的比较器,以完成集合排序的功能:
本质上来说,订购实例无非就是一个特殊的比较器实例。
命令把很多基于比较器的静态方法(如集合。max)包装为自己的实例方法(非静态方法),
并且提供了链式调用方法,来定制和增强现有的比较器
//创建排序器 @Test 公共空间createOreing () {//对可排序类型做自然排序,如数字按大小,日期按先后排序 Ordering自然=Ordering.natural ();//按对象的字符串形式做字典排序 Ordering.usingToString ();//把给定的比较器转化为排序器或者继承订购实现自定义排序器 Ordering 从=Ordering.from((整数x, y整数)→Ints.compare (x, y)); System.out.println(从。马克斯(5、6)); }
<强>二扩展排序器,变换成其他功能排序器
强>
//衍生其他排序器 @Test 公共空间anotherOreing () { Ordering自然=Ordering.natural (); 自然。马克斯(1、2);//2//获取语义相反的排序器 natural.reverse ()。马克斯(1、2);//1 List =名单列表。newArrayList(4) 5、9、3、7日; Collections.sort(列表,natural.nullsFirst ());//使用排序器对集合排序 list.forEach (x→System.out.print (x +“、“));//3、4、5、7、9//不使用这两个排序器,排序元素不能为null,否则会报空指针 natural.nullsFirst();//使用当前排序器,并把null值排到最前 natural.nullsLast();//使用当前排序器,并把null值排到最后 natural.compound(自然);//合成另一个比较器,以处理当前排序器中的相等情况,即添加第二个比较器//onResultOf:将函数应用在各个元素上之后,在使用原始点进行排序 Collections.sort(列表,natural.onResultOf (→x *(1)));//元素变为负数再排序 list.forEach (x→System.out.print (x +“、“));//9、7、5、4、3 }
<强>三使用排序器强>
//使用排序器 @Test 公共空间operOrdering () { Ordering自然=Ordering.natural (); List list02=Lists.newArrayList (6 4 9、3、1、5、3);/* * * greatestOf:获取可迭代对象中最大的k个元素,并按从大到小排的序,返回一个集合 * leastOfL获取最小的几个,并按从小到大排的序 */natural.greatestOf (list02 1) .forEach (x)→System.out.println (x));//9 natural.leastOf (list02 1) .forEach (x)→System.out.println (x));//1//返回集合的一个排好序的副本 natural.sortedCopy (list02); natural.immutableSortedCopy (list02);//返回不可变的排序副本/* * *残疾:判断是否已经按排序器有序,元素不能少于2,允许有相等元素 * isStrictlyOrdered:是否严格排序,不允许有相等元素 */Collections.sort (list02、自然); natural.isOrdered (list02);//真实的 natural.isStrictlyOrdered (list02);//错误//其他直接比较元素 natural.compare (1、2); natural.max (5、6); natural.min (list02); }
上述就是小编为大家分享的Java番石榴使用顺序排序器的方法了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。