Java从入门到入土之集合篇

本文详细介绍了Java集合框架中的核心接口和实现类,包括List(ArrayList, Vector, LinkedList)、Set(HashSet, LinkedHashSet, TreeSet)、Queue(LinkedList, PriorityQueue, ArrayDeque)和Map(HashMap, LinkedHashMap, TreeMap, Hashtable)。分析了它们的特点、底层数据结构及优缺点,如ArrayList的动态数组实现,HashSet的哈希表结构,以及不同集合的线程安全性。" 127254382,15817571,SSM患者服务管理系统设计与实现,"['Java', 'Mybatis', 'MySQL', 'SSM框架', '患者管理']

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

概述

Collection是集合层次结构中的根界面,依赖于 Iterator,Map接口。
Collection下有3个重要子接口:List,Set,Queue。
在这里插入图片描述

Collection接口:

List:有序集合(也称为序列 )几个重要实现类:

  1. Arraylist: 底层使用动态数组实现。我们知道数组的长度一旦申请就无法改变,ArrayList是在数组内的负载因子(数组已用的值/数组长度)达到1时进行扩容,扩容的方式是申请一个新的数组讲旧数组的数据全部复制到新的数组中,然后销毁旧数组。ArrayList的扩容增量是0.5+1,例如:旧数组的长度为10,扩容后的数组长度为16。注意一点,当我们实例化一个ArrayList的时候如果不给于他一个长度,会默认长度为10。;
    优点:因为底层是数组,数据在数组中有下标,通过下标取值速度很快,查询数据的速度快,效率高。
    缺点:每一次对数组的增加和删除操作会使操作位置后面的元素移动,增删速度慢,并且非线程安全。
  2. **Vector:**底层同样采用动态数组实现。加载因子也是1,扩容增量为1,例如:旧数组的长度为10,扩容后的数组长度为20;默认长度也是10。
    优点:查询速度快,线程安全。
    缺点:增删操作速度慢,效率低。
  3. **LinkedList:**底层采用双向链表的数据结构,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,双向链表是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值