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

java集合map

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

java集合map

map

特点:1,无序,键值对,键不能重复,值可以重复,

2,键重复则覆盖,没有继承Collection接口

扩容:初始容量16,负载因子0.75,扩容增量1倍

遍历:1,先获取所有键的Set集合,再遍历(通过键获取值)

2,先获取所有键的Set集合,再遍历(通过键获取值)

HashMap:

1,线程不安全,最常用,速度快

2,内部采用数组来存放数据

3,基本原理 put执行过程

Table数组中的的Node

链表结构示意图

 红黑树结构示意图

流程图中绿色标出的部分为JDK8新增的处理逻辑,目的是在Table[i]中的Node节点数量大于8时,通过红黑树提升查找速度。

HashTable:线程安全,不太常用

ConcurrentHashMap:线程安全,比HashTable性能高

TreeMap:1,key值按一定的顺序排序

2,添加或获取元素时性能较HashMap慢,因为需求维护内部的红黑树,用于保证key值的顺序

linkedHashMap:1,继承HashMap

2,linkedHashMap是有序的,且默认为插入顺序,当我们希望有顺序地去存储key-value时,就需要使用linkedHashMap了

 Map linkedHashMap = new linkedHashMap<>();
        linkedHashMap.put("name1", "josan1");
        linkedHashMap.put("name2", "josan2");
        linkedHashMap.put("name3", "josan3");
        Set> set = linkedHashMap.entrySet();
        Iterator> iterator = set.iterator();
        while(iterator.hasNext()) {
            Entry entry = iterator.next();
            String key = (String) entry.getKey();
            String value = (String) entry.getValue();
            System.out.println("key:" + key + ",value:" + value);
        }

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781600.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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