一.集合的分类
1.Collection
List: 可重复, 有存储顺序(有索引),存和取有序
ArrayList 数组实现, 增删慢, 查找快
LinkedList 链表实现, 增删快, 查找慢
Vector 数组实现, 原理和ArrayList相同, 但线程安全
Set
HashSet
TreeSet
LinkedHashSet
2.Map
HashMap
TreeMap
Hashtable
LinkedHashMap
二.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)泛型的前世今生
A:泛型类
B:泛型方法
C:泛型接口
(5)泛型的使用:(掌握)
看API中的类或者接口,其后是否跟有<>,如果有,就是泛型的应用。
一般在集合中用。
|
|