If
you just need keys, use keySet(). If you just need values, use values(). If
you're going to use keys and values in your
subsequent code, then you're best off using entrySet().
I frequently see
people do this without entrySet(), and it
usually looks something like this:
-
for (Iterator it = map.keySet().iterator(); it.hasNext(); ) {
-
Foo key = (Foo) it.next();
-
Bar value = (Bar) map.get(key);
-
// now do something with key and value
- }
This works, but it's making the JVM do extra work for no good reason.
Every time you call get() you're making the JVM spend time doing a hashcode
lookup, or navigating a tree and evaluating a comparator. These operations may
be fast, or not, but why do them if you don't have to? A Map.Entry gives you
both key and value, together, in the most efficient manner
possible.
-
for (Iterator it = map.entrySet().iterator(); it.hasNext(); ) {
-
Map.Entry e = (Map.Entry) it.next();
-
Foo key = (Foo) e.getKey();
-
Bar value = (Bar) e.getValue();
-
// now do something with key and value
- }
Under JDK 5 and later it's a little nicer:
-
for (Map.Entry<Foo,Bar> e : map.entrySet()) {
-
Foo key = e.getKey();
-
Bar value = e.getValue();
-
// now do something with key and value
- }
相关推荐
1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中, 放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、...
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { ...for(Map.Entry entry:a.entrySet()){ System.out.println(entry.getKey()+"="+entry.getValue()); }
<br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { <br> Map.Entry entry = (Map.Entry) iter.next(); <br> Object key = entry.getKey(); <br> Object val = entry.getValue()...
Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); } Map map =...
for(Map.Entry,Object> entry:data.entrySet()){ View v = (View) entry.getKey(); v.setOnClickListener(null); } } private void registerLisntener(){ for(Map.Entry,Object> entry:data.entrySet...
用自定义的MyHashMap彻底了解EntrySet ()方法,及put()和get()方法实现
Iterator it=map.entrySet().iterator(); while(it.hasNext()){ Map.Entry m = (Map.Entry) it.next(); String key=(String)m.getKey(); String value=(String) m.getValue(); System.out....
return map.entrySet(); } public boolean isEmpty() { // TODO Auto-generated method stub return map.isEmpty(); } public Set keySet() { // TODO Auto-generated method stub return map.keySet(); ...
java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) {
Set, ArrayList<City>>> entrySet=map.entrySet(); for (Entry, ArrayList<City>> entry : entrySet) { System.out.println(entry.getKey()); ArrayList<City> value = entry.getValue(); for (City ...
1212Map.doc 目的: 学会使用 Map、TreeMap 完成内容 1. 定义 Map, 加入一些数据 使用 entrySet 方式显示全部键、值其内容 使用 keySet 方式显示全部键、值内容 使用 values 显示全部值内容
for (Map.Entry, Object> m : exp.entrySet()) { //如果value是JSONObject类型,则将该类型转化成Map类型,继续循环比较 if (JSONObject.class == m.getValue().getClass()) { Map, Object> expDataInfo = ...
map.entrySet() // 返回Entity[{key,value},{key,value}] map.containsKey('kevin') //返回:false function Map() { this.keys = new Array(); this.data = new Object(); /** * 放入一个键值对 * @par
<FONT color=#0000ff>//方法一: 用entrySet() Iterator it = emails.entrySet().iterator(); while(it.hasNext()){ Map.Entry m=(Map.Entry)it.next(); logger.info("email-" + m.getKey() + ":" + m....
文章目录简介基本概念使用Stream获取map的key使用stream获取map的value总结 怎么在java 8的map中使用stream 简介 Map是java中非常常用的一个集合类型,我们通常也需要去遍历Map去获取某些值,java 8引入了Stream的...
Set, Integer>> entrySet = map.entrySet(); System.out.println("编号\t单价\t数量\t名称\t总价"); for(Entry, Integer> entry:entrySet){ Goods goods = entry.getKey(); Integer quantity = entry.getValue...
for(Map.Entry, String> entry: params.entrySet()){ pathBuilder.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue())).append("&"); } //...
Set, Integer>> entrySet = map.entrySet(); System.out.println("编号\t单价\t数量\t名称\t总价"); for(Entry, Integer> entry:entrySet){ Goods goods = entry.getKey(); Integer quantity = entry.getValue...
> entry : map.entrySet()) { if (sb.length() > 0) { sb.append("&"); } sb.append(String.format("%s=%s", URLEncoder.encode(entry.getKey().toString(), "UTF-8"), URLEncoder.encode(entry.getValue().toString...
手机游戏源码,可运行,比较好 ... for(Map.Entry, MediaPlayer> entry : sounds.entrySet()) { MediaPlayer mp = entry.getValue(); if (mp != null) { mp.release(); } } } }