传智播客java基础班冯佳老师整理,还会持续更新,请关注冯佳老师的微博fengjia_2553868@qq.com
一.集合的分类
-
1.Collection
-
List: 可重复, 有存储顺序(有索引),存和取有序
- ArrayList 数组实现, 增删慢, 查找快
- LinkedList 链表实现, 增删快, 查找慢
- Vector 数组实现, 原理和ArrayList相同, 但线程安全
-
Set
-
2.Map
-
HashMap
- TreeMap
- Hashtable
二.List的三个儿子(掌握)
-
(1)List的三个儿子特点:
-
List
-
ArrayList
- 底层数据结构是数组,查询和修改快,增删慢
- 线程不安全,效率高
-
Vector
- 底层数据结构是数组,查询慢(相对应ArrayList),增删慢(相对应LinkedList)
- 线程安全,效率低
-
LinkedList
- 底层数据结构是链表,查询和修改慢,增删快
- 线程不安全,效率高
- (2)ArrayList(存储字符串和自定义对象)
-
(3)Vector(存储字符串和自定义对象)
- 有自己的特殊功能(方法)。
- 但是不用,被新功能给替代了。
-
(4)LinkedList(存储字符串和自定义对象)
-
(5)案例:
- A:ArrayList存储字符串并去除重复值
-
B:ArrayList存储自定义对象并去除重复值
- C:用LinkedList模拟栈数据结构
三.泛型(理解)
- (1)泛型是一种把明确类型放在了创建对象或者调用方法时候才去明确的特殊的类型。
-
(2)格式:
-
(3)好处:
- A:解决了黄色警告线问题
- B:把运行期间的转换异常给提前到了编译期间
- C:优化了程序设计,不需要做强制类型转换了
-
(4)泛型的前世今生
-
(5)泛型的使用:(掌握)
- 看API中的类或者接口,其后是否跟有<>,如果有,就是泛型的应用。
- 一般在集合中用。