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

您的位置:首頁技術文章
文章詳情頁

Java 對HashMap進行排序的三種常見方法

瀏覽:51日期:2022-08-21 18:31:43

首先來看看Map集合獲取元素的三種常見方法keySet()、values()、entrySet()

1. values():

返回map集合的所有value的Collection集合(于集合中無序存放)

import java.util.*;public class Main{ public static void main(String[] args){ Map<String, String> map = new HashMap<String, String>(); //構建鍵值對為<String, String>的Map集合 map.put('a', 'aaa'); map.put('b', 'bbb'); map.put('c', 'ccc'); Collection<String> collection = map.values(); //獲取map集合的所有value的Collection集合(于集合中無序存放) System.out.println(collection); }}/** * 運行結果 * [bbb, ccc, aaa] */

2. keySet():

返回map集合的所有鍵的Set集合(于Set集合中無序存放)

通過迭代取出所有key,再利用get()方法獲取value, for(類型 元素: 集合) 的本質是獲取集合的迭代器進行迭代

import java.util.*;public class Main{ public static void main(String[] args){ Map<String, String> map = new HashMap<String, String>(); //構建鍵值對為<String, String>的Map集合 map.put('a', 'aaa'); map.put('b', 'bbb'); map.put('c', 'ccc'); Set<String> keySet = map.keySet(); //獲取map集合的所有鍵的Set集合(于Set集合中無序存放) Iterator<String> iter = keySet.iterator(); //獲取keySet集合的迭代器 while(iter.hasNext()){ String key = iter.next(); String value = map.get(key); System.out.println('key:' + key + '-->value:' + value); } /* for(String key: keySet){ String value = map.get(key); System.out.println('key:' + key + '-->value:' + value); } */ }}/** * 運行結果 * key:b-->value:bbb * key:c-->value:ccc * key:a-->value:aaa */

3. entrySet():

返回map集合的所有'映射'的Set集合,這里規范每個'映射'的類型為Map.Entry<K, V>(于Set集合中無序存放)

通過迭代取出所有的“映射”,再利用getKey()、getValue()方法獲取相應鍵、值

import java.util.*;public class Main{ public static void main(String[] args){ Map<String, String> map = new HashMap<String, String>(); //構建鍵值對為<String, String>的Map集合 map.put('a', 'aaa'); map.put('b', 'bbb'); map.put('c', 'ccc'); Set<Map.Entry<String, String>> entrySet = map.entrySet(); //獲取map集合的所有'映射'的Set集合,這里規范每個映射的類型為Map.Entry<K, V>(于Set集合中無序存放) Iterator<Map.Entry<String, String>> iter = entrySet.iterator(); //獲取entrySet集合的迭代器,Map.Entry<K, V>為迭代元素的類型 while(iter.hasNext()){ Map.Entry<String, String> item = iter.next(); String key = item.getKey(); String value = item.getValue(); System.out.println('key:' + key + '-->value:' + value); } /* for(Map.Entry<String, String> item: entrySet){ String key = item.getKey(); String value = item.getValue(); System.out.println('key:' + key + '-->value:' + value); } */ }}/** * 運行結果 * key:b-->value:bbb * key:c-->value:ccc * key:a-->value:aaa */

有以上方法作為基礎,那么我們很容易想到對HashMap進行排序的兩種方法

1. 通過keySet()獲取Map集合的所有鍵的Set集合,由List集合獲取其中所有元素,通過比較器對元素為鍵的List集合進行排序

2. 通過entrySet()獲取Map集合所有映射的Set集合,由List集合獲取其中所有元素,通過比較器對元素為'映射'List集合進行排序

通過對比較器compare方法的Override,兩者還可以實現利用value進行排序。有關java中Comparable和Comparator比較的詳解

import java.util.*;public class DescKeyComparator implements Comparator<String>{ public static void main(String[] args){ Map<String, String> map = new HashMap<String, String>(); //構建鍵值對為<String, String>的Map集合 map.put('a', 'aaa'); map.put('b', 'bbb'); map.put('c', 'ccc'); Set<String> entrySet = map.keySet(); //獲取map集合的所有鍵的Set集合(于Set集合中無序存放) List<String> list = new ArrayList<String>(entrySet); //新建List集合獲取Set集合的所有元素(鍵對象)(順序與Set集合一樣) /** * 接下來的排序是list的專長了 * 通過“比較器(DescKeyComparator)”,對list進行排序 */ Collections.sort(list, new DescKeyComparator()); /* Collections.sort(list); //String實現了Comparable,默認升序排列 */ Iterator<String> iter = list.iterator(); //獲取List集合的迭代器,String為迭代元素的類型 while(iter.hasNext()){ String key = iter.next(); String value = map.get(key); System.out.println('key:' + key + '-->value:' + value); } /* for(Map.Entry<String, String> item: list){ String key = iter.next(); String value = map.get(key); System.out.println('key:' + key + '-->value:' + value); } */ } @Override public int compare(String key1, String key2){ return key2.compareTo(key1); //降序排序; String作為api提供的類,實現了Comparable的compareTo方法被設計成小于、等于、大于分別返回負數、零、正數 }}/** * 運行結果 * key:c-->value:ccc * key:b-->value:bbb * key:a-->value:aaa */

import java.util.*;public class AscKeyComparator implements Comparator<Map.Entry<String, String>>{ public static void main(String[] args){ Map<String, String> map = new HashMap<String, String>(); //構建鍵值對為<String, String>的Map集合 map.put('a', 'aaa'); map.put('b', 'bbb'); map.put('c', 'ccc'); Set<Map.Entry<String, String>> entrySet = map.entrySet(); //獲取map集合的所有'映射'的Set集合,這里規范每個映射的類型為Map.Entry<K, V>(于Set集合中無序存放) List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(entrySet); //新建List集合獲取Set集合的所有元素('映射'對象)(順序與Set集合一樣) /** * 接下來的排序是list的專長了 * 通過“比較器(AscKeyComparator)”,對list進行排序 */ Collections.sort(list, new AscKeyComparator()); Iterator<Map.Entry<String, String>> iter = list.iterator(); //獲取List集合的迭代器,Map.Entry<K, V>為迭代元素的類型 while(iter.hasNext()){ Map.Entry<String, String> item = iter.next(); String key = item.getKey(); String value = item.getValue(); System.out.println('key:' + key + '-->value:' + value); } /* for(Map.Entry<String, String> item: list){ String key = item.getKey(); String value = item.getValue(); System.out.println('key:' + key + '-->value:' + value); } */ } @Override public int compare(Map.Entry<String, String> item1, Map.Entry<String, String> item2){ return item1.getKey().compareTo(item2.getKey()); //升序排序 }}/** * 運行結果 * key:a-->value:aaa * key:b-->value:bbb * key:c-->value:ccc */

以上就是Java 對HashMap進行排序的三種常見方法的詳細內容,更多關于Java 對HashMap進行排序的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 酒瓶_酒杯_玻璃瓶生产厂家_徐州明政玻璃制品有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 2-羟基泽兰内酯-乙酰蒲公英萜醇-甘草查尔酮A-上海纯优生物科技有限公司 | 昊宇水工|河北昊宇水工机械工程有限公司 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | elisa试剂盒-PCR试剂盒「上海谷研实业有限公司」 | 苏商学院官网 - 江苏地区唯一一家企业家自办的前瞻型、实操型商学院 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 焦作网 WWW.JZRB.COM| 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 深圳市源和塑胶电子有限公司-首页| 深圳南财多媒体有限公司介绍| 逗网红-抖音网红-快手网红-各大平台网红物品导航 |