单列集合到底有哪些?怎么实现的?

单列集合思维导图

以下是根据思维导图做的简洁点的介绍

🧠 一、集合的作用与分类

类别描述
作用方便存储和管理数据,满足不同业务需求
分类单列集合(Collection)与双列集合(Map

📦 二、单列集合(Collection)

1. 接口层级

Collection(根接口)
├── List(有序、可重复、有索引)
│   ├── ArrayList
│   └── LinkedList
└── Set(无序、不重复、无索引)
    ├── HashSet(无序)
    ├── LinkedHashSet(有序)
    └── TreeSet(可排序)

2. List 系列集合

✅ 共同特点:
  • 有序(按添加顺序)

  • 元素可重复

  • 有索引(支持按索引操作)

实现类底层结构特点使用场景
ArrayList数组查询快,增删慢查询频繁、增删少
LinkedList双向链表增删快,查询慢,支持首尾高效操作首尾操作多,如队列、栈
🔧 List 特有方法(索引相关):
方法描述
add(int index, E element)在指定位置插入元素
E remove(int index)删除指定索引元素,返回被删元素
E get(int index)获取指定索引元素
🔧 LinkedList 特有方法(首尾操作):
方法描述
addFirst(E e) / addLast(E e)在开头/末尾添加元素
getFirst() / getLast()获取开头/末尾元素
removeFirst() / removeLast()删除并返回开头/末尾元素

3. Set 系列集合

✅ 共同特点:
  • 无序(LinkedHashSet 除外)

  • 元素不可重复

  • 无索引

实现类底层结构特点使用场景
HashSet哈希表(数组+链表+红黑树)无序、去重不关心顺序,只去重
LinkedHashSet哈希表 + 双向链表有序(插入顺序)、去重保留插入顺序
TreeSet红黑树可排序(默认升序)、去重需要排序
🔧 TreeSet 排序方式:
方式描述
自然排序类实现 Comparable 接口,重写 compareTo
定制排序构造时传入 Comparator 比较器

🔁 三、集合遍历方式

遍历方式描述
普通 for 循环适用于 List(有索引)
增强 for(for-each)本质是 Iterator 的简化写法
forEach(Consumer) + Lambda简洁写法,如:list.forEach(System.out::println)

⚠️ 注意:Lambda 表达式中不能使用 continuebreakreturn 控制循环


🛠️ 四、Collection 常用方法(所有子类都有)

方法描述
add(E e)添加元素
clear()清空集合
contains(Object o)判断是否包含某元素
isEmpty()判断是否为空
size()返回元素个数
toArray()把集合转成数组

🧰 五、Collections 工具类(操作 List)

方法描述
addAll(Collection<? super T> c, T... elements)批量添加元素
shuffle(List<?> list)打乱 List 元素顺序
sort(List<T> list) / sort(List<T> list, Comparator<? super T> c)对 List 升序排序(可自定义比较器)

⚠️ 注意:Collections.sort() 只能对 List 排序,不能排序 Set


✅ 六、集合选择建议(使用场景)

需求推荐集合
查询多、增删少ArrayList
增删多、查询少,或频繁首尾操作LinkedList
去重、不关心顺序HashSet
去重、保留插入顺序LinkedHashSet
去重、需要排序TreeSet

七、集合和数组的区别

维度数组集合
长度固定可变
元素基本/对象仅对象(基本需包装)
扩容手工自动
API极少丰富
速度最快稍慢
泛型
类型检查运行时编译时

拓展介绍底层原理:

1.ArrayList实现底层代码

2.LinkedList实现底层代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值