Map集合中三种方法的简介:
values():获取集合中的所有的value值;
keySet():将Map中所有的key存放到Set集合中。应为Set集合有迭代器,可以通过迭代器循环key,在通过get()方法,得到每个key所对应的value;
entrySet():Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 。
package com.dbzhang.demo;
/***
*
*/
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapFunction {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
map.put("01", "a");
map.put("02", "b");
map.put("03", "c");
map.put("04", "d");
/**通过values()方法,获取集合中所有的值**/
Collection<String> collection = map.values();
System.out.println(collection);
/**通过keySet()方法将所有的key值存放到Set集合中,Set集合中有迭代器**/
Iterator<String> iterator = map.keySet().iterator();
while(iterator.hasNext()){
String key = iterator.next();
System.out.println("key="+key+" "+map.get(key));
}
/**通过entrySet()方法将key和value存放到Set集合中,Set集合中有迭代器**/
Set<Entry<String,String>> entry = map.entrySet();
Iterator<Entry<String,String>> iterators = entry.iterator();
while(iterators.hasNext()){
Entry<String,String> entrys = iterators.next();
System.out.println("key="+entrys.getKey()+"&&value="+entrys.getValue());
}
}
}
返回的结果如图:
汇总:
(1)Set<K> keySet():返回值是个只存放key值的Set集合(集合中无序存放的),迭代后只能通过get()取key。
(2)Set<Map.Entry<K,V>> entrySet():返回映射所包含的映射关系的Set集合(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口。
(3)虽然使用keyset及entryset来进行遍历能取得相同的结果,但两者的遍历速度是有差别的,keySet()的速度比entrySet()慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好,为了提高性能,以后多考虑用entrySet()方式来进行遍历。
参看技术博客:https://blog.csdn.net/kfengqingyangk/article/details/53288152