JAVA DI 6章总结

第六章 集合与泛型知识点总结

1. 集合概述
集合是一种容器,用于存储多个对象。Java 集合框架提供了一系列接口和类来管理和操作对象集合,方便数据的组织与处理,提高编程效率,比如在处理大量数据时,能更便捷地进行添加、删除、查找等操作。

2. Collection 集合
Collection 是集合层次结构中的根接口,定义了一些集合通用的基本操作方法,如 add 方法用于添加元素,remove 方法用于移除元素,contains 方法用于判断集合是否包含指定元素,size 方法用于获取集合中元素的数量等。它是 List 和 Set 等接口的父接口 。

3. List 集合

• List 集合简介:List 接口继承自 Collection 接口,它的特点是有序(元素存入和取出顺序一致)、可重复(允许有重复元素) 。

• ArrayList 集合:是 List 接口的常用实现类,基于数组实现。它的优点是查询速度快,因为底层数组可通过索引快速访问元素;缺点是在频繁插入和删除元素时性能较差,因为涉及数组元素的移动。例如在向数组中间插入元素时,后续元素都要后移。

• LinkedList 集合:也是 List 接口的实现类,基于链表实现。它在插入和删除元素时性能较好,不需要像数组那样移动大量元素,只需改变链表节点的引用;但查询元素时性能相对较差,需要从链表头或尾开始遍历查找。

• 集合的遍历:可以使用迭代器(Iterator)遍历,通过 hasNext 方法判断是否还有下一个元素,next 方法获取下一个元素;也可以使用增强 for 循环遍历,语法简洁,方便对集合元素进行读取操作。

4. 泛型
泛型是 Java 5 引入的新特性,允许在定义类、接口、方法时使用类型参数。使用泛型可以提高代码的通用性和类型安全性,避免类型转换异常。例如定义 ArrayList<Integer> ,就限定该集合只能存储 Integer 类型的元素,在编译阶段就能检查类型错误 。

5. Set 集合

• HashSet 集合:实现了 Set 接口,基于哈希表实现。它的特点是元素无序(存入和取出顺序可能不同)且不重复,通过哈希码来确定元素的存储位置,判断元素是否重复也是基于哈希码和 equals 方法。

• TreeSet 集合:同样实现了 Set 接口,基于红黑树实现。它能对元素进行自动排序,排序规则可以是自然排序(元素实现 Comparable 接口),也可以自定义排序(传入 Comparator 接口实现类) ,元素同样不重复。

6. Map 集合

• Map 集合简介:Map 接口用于存储键值对(key - value)映射关系,一个键最多映射到一个值。它提供了如 put 方法添加键值对,get 方法根据键获取值,keySet 方法获取所有键的集合,values 方法获取所有值的集合等操作方法。

• HashMap 集合:是 Map 接口的常用实现类,基于哈希表实现。它允许 null 键和 null 值,但键必须唯一,查找、插入和删除操作性能较好。

• TreeMap 集合:实现了 Map 接口,基于红黑树实现。它会根据键的顺序对键值对进行排序,排序方式和 TreeSet 类似,可自然排序或自定义排序,适用于需要按键有序遍历键值对的场景 。

7. Stream 流
Java 8 引入的 Stream API 用于对集合等数据源进行函数式编程风格的操作。可以通过 Stream 对集合元素进行过滤、映射、排序、聚合等操作,以更简洁的方式处理数据。例如使用 filter 方法过滤出满足条件的元素,map 方法对元素进行转换等,提高了代码的可读性和简洁性 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值