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

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

Java中Map的entrySet()使用說明

瀏覽:8日期:2022-08-23 18:50:45

由于Map中存放的元素均為鍵值對,故每一個鍵值對必然存在一個映射關系。

Map中采用Entry內部類來表示一個映射項,映射項包含Key和Value

Map.Entry里面包含getKey()和getValue()方法

Set<Entry<T,V>> entrySet()

該方法返回值就是這個map中各個鍵值對映射關系的集合。

可使用它對map進行遍歷。

Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator(); while(it.hasNext()) { Map.Entry<Integer,Integer> entry=it.next(); int key=entry.getKey(); int value=entry.getValue(); System.out.println(key+' '+value); }

補充知識:Map對象中的keyset()、entryset()和Map.Entry

一 Map對象中的keySet()和entrySet()

1. keySet()

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put('01', 'qwe'); map.put('02', 'asd'); map.put('03', 'zxc'); // 先獲取map集合的所有鍵的set集合,即為map中所有key值得集合 Set<String> keySet = map.keySet(); // 有了set集合,就可以獲取其迭代器 Iterator<String> it = keySet.iterator(); while (it.hasNext()) { String key = it.next(); // 有了鍵可以通過map集合的get方法獲取其對應的值 String value = map.get(key); // 獲得key和value值 System.out.println('key:' + key + '-->value:' + value); }}

keySet()返回的是map對象的key值的set集合

2. entrySet()

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put('01', 'qwe'); map.put('02', 'asd'); map.put('03', 'zxc'); // 通過entrySet()方法將map集合中的映射關系取出(這個關系就是Map.Entry類型) Set<Map.Entry<String, String>> entrySet = map.entrySet(); // 將關系集合entryset進行迭代,存放到迭代器中 Iterator<Map.Entry<String, String>> it2 = entrySet.iterator(); while (it2.hasNext()) { // 獲取Map.Entry關系對象me Map.Entry<String, String> me = it2.next(); // 通過關系對像獲取key String key2 = me.getKey(); // 通過關系對像獲取value String value2 = me.getValue(); System.out.println('key:' + key2 + '-->value:' + value2); } }

entrySet()返回映射所包含的映射關系的Set集合(一個關系就是一個鍵-值對),就是把(key-value)作為一個整體一對一對地存放到Set集合當中的。

3.總結

雖然使用keyset及entryset來進行遍歷能取得相同的結果,但兩者的遍歷速度是有差別的。

keySet():迭代后只能通過get()取key;再根據key值取value。

entrySet():迭代后可以e.getKey(),e.getValue()取key和value。

同時,keySet()的速度比entrySet()慢了很多,也就是keySet方式遍歷Map的性能不如entrySet性能好

為了提高性能,以后多考慮用entrySet()方式來進行遍歷。

二 Map.Entry

Map是java中的接口,Map.Entry是Map的一個內部接口。

Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一個Set集合,此集合的類型為Map.Entry。

Map.Entry是Map聲明的一個內部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個實體(一個key-value對)。接口中有getKey(),getValue方法。

遍歷Map對象的常用方法除了以上兩種外,還有一種是單純的遍歷value值。Map有一個values方法,返回的是value的Collection集合。通過遍歷Collection也可以遍歷value。

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put('01', 'qwe'); map.put('02', 'asd'); map.put('03', 'zxc'); // 創建一個Collection集合,存放map的value值 Collection<String> c = map.values(); // 通過遍歷Collection也可以遍歷value Iterator<String> it = c.iterator(); // 該方法只能遍歷value值,不能遍歷key值 while (it.hasNext()) { Object value = it.next(); System.out.println('value:' + value); } }

在遍歷Map對象時,先從Map對象中取出key值之后,還必須每次重復返回到Map中取得相對的值,這是很繁瑣和費時的。

幸運的是,Map類提供了一個稱為entrySet()的方法,這個方法返回一個Map.Entry實例化后的對象集。 接著,Map.Entry類提供了一個getKey()方法和一個getValue()方法。

Set entries = map.entrySet( ); if(entries != null) { Iterator iterator = entries.iterator( ); while(iterator.hasNext( )) { Map.Entry entry =iterator.next( ); Object key = entry.getKey( ); Object value = entry.getValue(); //}}

盡管增加了一行代碼,我們卻省略了許多對Map不必要的“get”調用。同時,提供給開發人員一個同時保持了關鍵字和其對應的值的類。Map.Entry同時也提供了一個setValue()方法,程序員可以使用它修改map里面的值。

以上這篇Java中Map的entrySet()使用說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 通信天线厂家_室分八木天线_对数周期天线_天线加工厂_林创天线源头厂家 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 带锯机|木工带锯机圆木推台锯|跑车带锯机|河北茂业机械制造有限公司| | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 深圳展厅设计_企业展馆设计_展厅设计公司_数字展厅设计_深圳百艺堂 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 合肥钣金加工-安徽激光切割加工-机箱机柜加工厂家-合肥通快 | 泰兴市热钻机械有限公司-热熔钻孔机-数控热熔钻-热熔钻孔攻牙一体机 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 扬州汇丰仪表有限公司| 振动筛-交叉筛-螺旋筛-滚轴筛-正弦筛-方形摇摆筛「新乡振动筛厂家」 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | IP检测-检测您的IP质量 | 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 韦伯电梯有限公司| 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 |