1. Java中Map集合
class="java" name="code">
1. Map中value可以重复,key不能重复。对于重复的key值来说,后放置的值对覆盖前放置的值。
import java.util.HashMap;
public class MapTest1{
public static void main(String[] args){
HashMap map = new HashMap();
map.put("a", "zhangsan");
map.put("b", "lisi");
map.put("c", "wangwu");
map.put("a", "zhaoliu");
System.out.println(map);
String value = (String)map.get("b");
System.out.println(value);
System.out.println("--------------");
String value2 = (String)map.get("d");
System.out.println(value2);
}
}
运行结果:
{b=lisi, c=wangwu, a=zhaoliu}
lisi
--------------
null
2. Map的entrySet()方法会返回map集合
Map的keySet()方法会返回key的集合,因为Map的键是不能重复的,因此keySet()方法的返回类型是Set;
Map的value是可以重复的,因此values()方法的返回类型是Collection,可以容纳重复的元素。
public class MapTest2{
public static void main(String[] args){
HashMap map = new HashMap();
String str = new String("zhangsan");
map.put("a", str);
map.put("a", str);
System.out.println(map);
}
}
运行结果:
{a=zhangsan}
3. 使用内部类Map.Entry来遍历Map
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " :" + entry.getValue());
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapTest3{
public static void main(String[] args){
HashMap map = new HashMap();
map.put("a", "aa");
map.put("b", "bb");
map.put("c", "cc");
map.put("d", "dd");
map.put("e", "ee");
Set set = map.keySet();
for(Iterator iter = set.iterator(); iter.hasNext();){
String key = (String)iter.next();
String value = (String)map.get(key);
System.out.println(key + "=" + value);
}
}
}
运行结果:
d=dd
e=ee
b=bb
c=cc
a=aa
4. 遍历map方式性能
1) 增强for循环使用方便,但性能较差,不适合处理超大量级的数据。
2) 迭代器的遍历速度要比增强for循环快很多,是增强for循环的2倍左右。
3) 使用entrySet遍历的速度要比keySet快很多,是keySet的1.5倍左右。
推荐博客:
https://www.cnb
logs.com/lzq198754/p/5780165.html
https://blog.csdn.net/casularm/article/details/164877