JAVA集合

本文深入解析Java集合框架,包括Collection和Map接口及其核心实现:List、Set、Queue和HashMap、Hashtable、ConcurrentHashMap。探讨各组件特性,如线程安全性、效率及应用场景,适合Java开发者进阶学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

              集合中2个根接口 Collection    和  Map  

 

Collection 接口

  •  是List、Set和Queue接口的父接口
  • 定义了可用于操作List、Set和Queue的方法----增删改查
  •       List  排列有序可重复 序列   常用实现类ArrayList 数组序列

          Queue 排列有序可重复 队列   常用实现类LinkedList 链表,同事也是List的实现类

          Set   无序不可重复可以添加空对象   集   set有个实现类是HashSet哈希值

Map接口

        map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,快速个根据key查找value

       map中的键值对以Entry类型的对象实例形式存在

        key值不可重复,value可重复

 

1.HashMap

线程不安全,所以性能高,可以通过继承collection来调用方法实现线程安全。

2.Hashtable

线程安全

    Hashtable n = new Hashtable();

        n.put("thre", new Integer(3));

        n.put("for", ”00“);

3.concurrentHashMap 相当于把一个hashmap分成多个,然后每个部分分配一把锁,这样就可以支持多线程访问。

线程安全的,在多线程下效率更高。

HashMap效率高,但是在多线程环境下线程不安全

 

HashTable线程安全,但是效率低,因为HashTable内部是采用synchronized来保证线程安全的,每次同步执行的时候要锁住整个结构,但是在线程竞争激烈的情况下HashTable的效率下降得很快

 

ConcurrentHashMap采用锁分段的技术,它对数据集进行分段,每段竞争一把锁,不同数据段的数据不存在锁竞争,从而有效提高了并发访问效率;可以理解为把一个大的Map拆分为N个小的HashTable,在put或者get的时候,根据key.hashCode()来决定把key放在哪一个HashTable中,在源码中一个小的HashTable就是一个Segment

 

总的来说,ConcurrentHashMap就是一个线程安全的HashMap 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥不可及zzz

我会用心写更多自己的经验。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值