Map是个接口无法直接创建对象,可利用多态为其创建对象
实现Map接口的类
Map方法
public class MapTest01 { public static void main(String[] args) { //创建Map对象 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 } }
获取所有的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对象中获取的属性值。这种方式比较适合于大数据量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)