前言
Map是个接口无法直接创建对象,可利用多态为其创建对象
实现Map接口的类
Map方法
public class MapTest01 {
public static void main(String[] args) {
//创建Map对象
Map<Integer,String> 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<String> 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<Integer> 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<Map.Entry<K,V>> entrySet() 该方法是把Map集合直接转换成Set集合 Set集合中的元素是:Map.Entry
比较
第二种方法效率更高,因为获取key和value都是直接从node对象中获取的属性值。这种方式比较适合于大数据量。