电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java Guava排序器Ordering原理及代碼實例

瀏覽:7日期:2022-08-21 09:04:13

一 創(chuàng)建排序器

排序器:可以用來為構(gòu)建復雜的比較器,以完成集合排序的功能:

本質(zhì)上來說,Ordering 實例無非就是一個特殊的Comparator 實例。

Ordering把很多基于Comparator的靜態(tài)方法(如Collections.max)包裝為自己的實例方法(非靜態(tài)方法),

并且提供了鏈式調(diào)用方法,來定制和增強現(xiàn)有的比較器

//創(chuàng)建排序器 @Test public void createOreing(){ //對可排序類型做自然排序,如數(shù)字按大小,日期按先后排序 Ordering<Comparable> natural = Ordering.natural(); //按對象的字符串形式做字典排序 Ordering.usingToString(); //把給定的Comparator轉(zhuǎn)化為排序器或者繼承Ordering實現(xiàn)自定義排序器 Ordering<Integer> from = Ordering.from((Integer x, Integer y) -> Ints.compare(x, y)); System.out.println(from.max(5, 6)); }

二 擴展排序器,變換成其他功能排序器

//衍生其他排序器 @Test public void anotherOreing(){ Ordering<Comparable> natural = Ordering.natural(); natural.max(1, 2); //2 //獲取語義相反的排序器 natural.reverse().max(1, 2); //1 List<Integer> list = Lists.newArrayList(5, 9, 3, 7, 4); Collections.sort(list,natural.nullsFirst()); //使用排序器對集合排序 list.forEach(x-> System.out.print(x+', ')); //3, 4, 5, 7, 9 // 不使用這兩個排序器,排序元素不能為null,否則會報空指針 natural.nullsFirst();//使用當前排序器,并把null值排到最前 natural.nullsLast();//使用當前排序器,并把null值排到最后 natural.compound(natural);//合成另一個比較器,以處理當前排序器中的相等情況,即添加第二個比較器 //onResultOf:將function應(yīng)用在各個元素上之后, 在使用原始ordering進行排序 Collections.sort(list,natural.onResultOf(x->x*(-1)));//元素變?yōu)樨摂?shù)再排序 list.forEach(x-> System.out.print(x+', ')); //9, 7, 5, 4, 3 }

三 使用排序器

//使用排序器 @Test public void operOrdering(){ Ordering<Comparable> natural = Ordering.natural(); List<Integer> 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); //返回不可變的排序副本 /** * isOrdered: 判斷是否已經(jīng)按排序器有序,元素不能少于2,允許有相等元素 * isStrictlyOrdered: 是否嚴格排序,不允許有相等元素 */ Collections.sort(list02,natural); natural.isOrdered(list02);//true natural.isStrictlyOrdered(list02); //false //其他直接比較元素 natural.compare(1,2);natural.max(5,6);natural.min(list02); }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 上海璟文空运首页_一级航空货运代理公司_机场快递当日达 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 合肥弱电工程_安徽安防工程_智能化工程公司-合肥雷润 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 上海心叶港澳台联考一对一培训_上海心叶港澳台联考,港澳台联考一对一升学指导 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 好物生环保网、环保论坛 - 环保人的学习交流平台| 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 恒温槽_恒温水槽_恒温水浴槽-上海方瑞仪器有限公司 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 |