java学习日记20230416-Map

Map接口实现类的特点

  • Map与Collection并列存在,Key-Value双列映射
  • Map中的Key和Value可以是任何引用类型的数据,会封装到HashMap$Node对象中;
  • Map中的Key不允许重复,当有相同的key时,等价于替换
  • Map中的Value是可以重复的
  • Map中key和Value都可以为空,Key为空只能有一个,Value为空可以有多个
  • 常用String类作为Map的key
  • Key和Value存在单项的一对一关系
  • 一对k-v放在一个Node节点,Node实现了Entry接口

  map常用方法:

  • put添加
  • remove根据键删除映射关系
  • get根据键获取value
  • 获取元素个数
  • isEmpty判断个数是否为0
  • clear清除
  • containsKey判断键是否存在

 

  HashMap没有synchronized,线程不安全

public class MapMethod {
    public static void main(String[] args) {
        //常用方法
        Map objectObjectMap = new HashMap();
        objectObjectMap.put(1,"jack");
        objectObjectMap.put(2,"tom");
        objectObjectMap.put("test","testvalue");
        //objectObjectMap.remove(2);
        System.out.println(objectObjectMap.containsKey(1));
       // objectObjectMap.clear();
        objectObjectMap.isEmpty();
        System.out.println(objectObjectMap.isEmpty());
        System.out.println(objectObjectMap);
        //遍历
        for (Object o :objectObjectMap.keySet()) {
            System.out.println(objectObjectMap.get(o));
        }
        Iterator iterator = objectObjectMap.keySet().iterator();
        while(iterator.hasNext()){
            System.out.println(objectObjectMap.get(iterator.next()));
        }
        Collection values = objectObjectMap.values();
        for (Object o :values) {
            System.out.println(o);
        }
        iterator =values.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //通过EntrySet
        Set set = objectObjectMap.entrySet();

        for (Object o :set) {
            Map.Entry setMap = (Map.Entry)o;
            System.out.println(setMap.getKey());
            System.out.println(setMap.getValue());
        }

        Iterator iterator1 = set.iterator();
        while (iterator1.hasNext()) {
            Object next = iterator1.next();
            Map.Entry next1 = (Map.Entry) next;
            System.out.println(next1.getKey() +" "+next1.getValue());
        }


    }
}
posted @   、子夜  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示