java集合
java集合
1.Collection
remove()
和contains()
需要目标类的equalse()
方法支持。(在简单java类中实现equals()方法的概率很低)。
2.List
可以保存重复数据。
1.ArrayList(jdk1.2)
是针对于list接口的数组操作实现。
初始化大小可以提高ArrayList的性能。
2.Vector
是jdk1.0就提出的,
问:ArrayList与Vector的区别?
* | ArrayList | Vector |
---|---|---|
时间 | jdk1.0 | jdk1.2 |
处理形式 | 异步处理 | 同步处理 |
数据安全 | 非线程安全 | 线程安全 |
输出形式 | Iterator、ListIterator、foreach | Iterator、ListIterator、foreach、Enumeration |
在使用过程中优先考虑ArrayList。
3.LinkedList
是一个纯粹的链表实现。
与ArrayList的区别?
1. 数组实现,链表实现。
2. 时间复杂度n,时间复杂度1。
3.Set
1.HashSet
无序存储。
需要重写保存类型的hashcode和equals方法
2.TreeSet
有序存储。
使用时保存类型需要实现Comparable。需要通过其完成排序和相同比较。
集合的输出
1.迭代输出(iterator)
只能够由前向后迭代输出。
2.双向迭代输出(ListIterator)
3.枚举行输出(enumeration)
4.foreach
map
1.Hashmap和HashTable的区别?
hashmap允许key和value为null。
HashTable为同步操作。
ConcurrentHashMap
线程安全的高性能对象。
采用了数据分块,避免了全局查询。数据分块使用hashcode作为分块标志。
总结
collection集合是为了输出,map集合是为了查找。