collection是最顶级的集合接口
1,list 有序可重复的 值:基本数据类型和引用类型
1.1 arraylist 线程非安全
1.2 vector 线程安全
1.1和1.2 都是基于数组实现的,查询快,但是增删改 慢
1.3 linkedlist 底层是双向链表
链表分为 双向链表和单向链表 增删改快,但是查询慢
2,set 无序不重复 值:基本数据类型和引用类型
HashSet
TreeSet 排序
LinkedHashSet LinkedHashSet保证了怎么存,怎么取,保证了唯一性
3,map 键:值
treemap
HashMap 线程非安全
hashtable 线程安全但是性能差,把map整个集合都锁定了
ConcurrentHashMap 线程安全,比hashtable性能好,分段 锁,对Map的每一个数组就是一个个段锁住,而不是锁住全部
1,
arraylist不安全而vector安全的原因
因为Vector的方法前加了,synchronized 关键字,也就是同步的意思,sun公司希望Vector是线程安全的,而希望arraylist是高效的。
注意 linkedlist可以形成栈的数据特性 先进后出
这是输出
121s
1
2.1
-----------------------------
2.1
1
121s
2,set
遍历必须通过迭代器
过滤list的方式
treeset与treemap一样,一定要能排序,如果是不能排序的类型会报错,需要继承compareable,定义排序方式
3, map
1,map的几种遍历方式
(1),keysets
(2)迭代器
(3)entryset
如下图
2,treemap会自动排序,给出的key一定要是可排序的,否则会报出异常,如果是Javabeans类型,要实现compareable接口,给出排序方法