Java中的集合框架是指一系列存储数据的接口和类,这些类和接口都位于java.util包中
使用集合框架可以解决复杂的数据存储问题,Java中内置了丰富的集合框架
Collection是一种数据结构,是集合的最大接口
List接口的定义:存储顺序有序,可以保存重复元素
List接口的常用子类有:ArrayList和Vector
LinkedList中的存放元素按照先进先出方式排序
Set接口的定义及常用子类:存储顺序无序,不可以保存重复元素
Set接口常用子类:HashSet
Map接口:以键值对形式存储数据,不允许出现重复键,元素存储顺序无序
Map接口的常用子类有:HashMap和Hashtable
1、List接口
List 关心的是索引,与其他集合相比,List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object
o) 。
ArrayList 可以将它理解成一个可增长的数组,它提供快速迭代和快速随机访问的能力。
LinkedList 中的元素之间是双链接的,当需要快速插入和删除时LinkedList成为List中的不二选择。
Vector 是ArrayList的线程安全版本,性能比ArrayList要低,现在已经很少使用
2、Set接口
Set关心唯一性,它不允许重复。
HashSet 当不希望集合中有重复值,并且不关心元素之间的顺序时可以使用此类。
LinkedHashset 当不希望集合中有重复值,并且希望按照元素的插入顺序进行迭代遍历时可采用此类。
TreeSet 当不希望集合中有重复值,并且希望按照元素的自然顺序进行排序时可以采用此类。(自然顺序意思是某种和插入顺序无关,而是和元素本身的内容和特质有关的排序方式,譬如“abc”排在“abd”前面。)
3、Map接口
Map关心的是唯一的标识符。他将唯一的键映射到某个元素。当然键和值都是对象。
HashMap 当需要键值对表示,又不关心顺序时可采用HashMap。
Hashtable 注意Hashtable中的t是小写的,它是HashMap的线程安全版本,现在已经很少使用。
LinkedHashMap 当需要键值对,并且关心插入顺序时可采用它。