栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JAVA集合5】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JAVA集合5】

MAP集合

Map接口时双列结合恶的顶层接口:

  • 存储的数据必须包含key和value
  • key和value在Map中是一一对应的关系
  • key在Map集合中是不会重复的
1. HashMap

特点:

  • 底层数据结构式哈希表
  • 存储数据的顺序和遍历顺序可能不一致
  • key值不会重复
1.创建对象
//创建对象 HashMap hashMap = new HashMap<>();
 HashMap hashMap = new HashMap<>();
2.常用方法
public static void main(String[] args) {
        //创建对象 HashMap hashMap = new HashMap<>();
        HashMap hashMap = new HashMap<>();
        
        //常用方法
        //添加元素,如果key不存在就添加,如果key已经存在就修改对应的value值,并返回修改前的value
        hashMap.put("age1",10); // 1. put(k key,v value)
        hashMap.put("age2",12);
        hashMap.put("age3",13);
        //根据key获取对应的value值,如果key值不存在,返回null
        System.out.println(hashMap.get("age1")); // 2. get(object key)
        //根据key值删除map中对应的键值对,删除的value作为返回值
        System.out.println(hashMap.remove("age3"));// 3. remove(object key)
        //判断key值是否存在
        System.out.println(hashMap.containsKey("age1"));// 4. containsKey(object key)
        //集合中键值对的对数
        hashMap.size(); // 5. size()
        //清空集合中的所有键值对
        hashMap.clear(); //6. clear()
    }
3.遍历
       
        Set> entries = hashMap.entrySet();
        //使用迭代器遍历entrySet
        Iterator> iterator = entries.iterator();
        while(iterator.hasNext()){
            Map.Entry next = iterator.next();
            System.out.println(next.getKey()+"  "+next.getValue());
        }
        //使用forearch遍历entrySet
        for (Map.Entry entry : entries) {
            System.out.println(entry.getKey()+"  "+entry.getValue());
        }

        
        Set keySet = hashMap.keySet();
        //foreach遍历
        for (String s : keySet) { //s表示的是key
            System.out.println(s+"  "+hashMap.get(s));
        }
2. HashMap的key去重原理

HashMap在添加元素的时候会判断集合中是否有key和本次存入的key相同。判断主要通过hashCode方法和equals方法进行判断,当两者同时相同的时,被判定相同。但用的是“==”号,默认比较的是地址,因此进行自定义,进行方法重写

 //alt+insert 快捷键重写
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Demo02 demo02 = (Demo02) o;
        return Objects.equals(age, demo02.age) && Objects.equals(name, demo02.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(age, name);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号