集合是一个对象,不过这种对象的功能是存储和管理多个对象,我们先看一下 java集合框架的主要接口,
我们先大概了解一下各个实现类的优缺点,具体分析放到后面的文章
List的实现类:
特点:有序,有下标,元素可重复
1.ArrayList
1)数组结构存储
2)轻量级,查询快,增删慢
3)操作速度快,线程不安全
2.vector
1)数组结构存储
2)重量级,查询快,增删慢
3)操作速度慢(相较 ArrayList),线程安全
3.LinkedList
1)链式存储接口
2)查询慢,增删快
Set实现类:
特点:无序,无下标,元素不可重复
1.HashSet
使用自定义对象时,重写equals,为了触发equals方法,必须重写 hashCode
2.LinkedHashSet
元素不能重复,但因链表结构可以保证保留插入顺序
3.TreeSet
实现了SortedSet 接口,对集合中的元素自动排序
Map实现类:
特点:存储一对数据 key--value,无序,无下标, key不能重复,value可以重复,根据key访问value
1.HashMap
1)操作速度快,线程不安全
2)允许使用null作为key或者value
2.HashTable
1)操作速度慢,线程安全
2)不能使用null作为key或者value
3.TreeMap
1)实现了sortedMap 自动对key进行排序
2)作为key的对象,必须实现Comparable接口(我们一般用的 String,已经实现过此接口)
* @see java.nio.charset.Charset
* @since JDK1.0
*/
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {