Map是个接口无法直接创建对象,可利用多态为其创建对象
实现Map接口的类
Map方法
public class MapTest01 {
public static void main(String[] args) {
//创建Map对象
Map map = new HashMap<>();
//向Map集合中添加键值对
map.put(1,"张三");
map.put(2,"李四");
map.put(3,"王五");
map.put(4,"刘六");
//通过key获取value
String value = map.get(2);
System.out.println(value);
//获取键值对的数量
System.out.println("键值对数量:"+map.size());
//判断是否包含某个key
//contains方法底层调用的都是equals进行比对的,所以自定义的类型要重写equals
System.out.println(map.containsKey(4));//true
//判断是否包含某个value
System.out.println(map.containsValue("张三"));
//获取所有的value
Collection values = map.values();
//foreach
for (String s : values){
System.out.println(s);
}
//清空map集合
map.clear();
System.out.println("键值对的数量:"+map.size());
//判断是否为空
System.out.println(map.isEmpty());//true
}
}
遍历Map
方法一:
获取所有的key,通过遍历key,来遍历value
Set方法二:keys = map.keySet(); //迭代器 Iterator it= keys.iterator(); while (it.hasNext()){ Object key= it.next(); System.out.println("key:"+key+" value:"+map.get(key)); } //foreach for (Integer key : keys) { System.out.println("key="+key+",value="+map.get(key)); }
比较Set> entrySet() 该方法是把Map集合直接转换成Set集合 Set集合中的元素是:Map.Entry
第二种方法效率更高,因为获取key和value都是直接从node对象中获取的属性值。这种方式比较适合于大数据量。



