我们常用的遍历集合中key和value的方式是:
Map<String,String> map = new HashMap<String,String>();
Set<String> mapSet = map.keySet();和Collection<String> c = map.values();
方法,如果想把map集合的values转为List<String>集合可以使用下面的方法:
Map<String, String> map = new HashMap<String, String>();
map.put("1", "aa");
map.put("2", "bb");
Set<String> keySet = map.keySet();
List<String> valList = new ArrayList<String>(map.values());
在api中出提供了上面的方法取得map集合中的key和value外还提供了,map.entrySet();方法,下面看看下面的示例:
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "aa");
map.put("2", "bb");
Set<String> keySet = map.keySet();
List<String> li = new ArrayList<String>(map.values());
Map<String,String[]> mapArr = new HashMap<String, String[]>();
String[] attStr = {"1","2"};
String[] attStr2 = {"3","4"};
mapArr.put("a", attStr);
mapArr.put("a", attStr2);
// 第一种,map中的key没有相同的情况
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = (Entry<String, String>) it.next();
System.out.println(entry.getKey()+"************"+entry.getValue());
}
for (Map.Entry<String, String> string : map.entrySet()) {
System.out.println(string.getKey()+"----------"+string.getValue());
}
// 第二种,map集合中key相同,value不同的情况
Iterator itArr = mapArr.entrySet().iterator();
while (itArr.hasNext()) {
Map.Entry<String, String[]> arrMap = (Entry<String, String[]>) itArr.next();
System.out.println(arrMap.getKey()+"0000"+arrMap.getValue()[0]);
}
for (Map.Entry<String, String[]> string : mapArr.entrySet()) {
System.out.println(string.getKey()+"eeeeeee"+string.getValue()[0]);
}
}
代码运行结果:
总结:
使用:map.entrySet();方法当有相同的key时,只会输出最后一次put的值