JAVA集合类总结
所有的集合类都是先Iterator接口,意味着所有的集合类都是可以迭代输出的。 以Collection为接口的元素集合类型,以Map为接口的映射集合类型 。所有集合的实现类都不是直接实现集合类接口,而是都继承一个相应的抽象类。 Collection类型又分为两大类Set和List set提供的是一个无序集; List提供的是一个有序集; Map提供了一个映射关系的集合数据结构。
List
List接口提供了多个实现的子类,其实现类有ArrayList,LinkedList,这两个都是非线程安全的。 Vector是线程安全的List实现类(sun公司不建议使用了),Stack是vector的子类。 Queue也是Collection的子接口,也就是我们所说的队列,默认采用的是先进先出。由于LinkedList实现了Queue和List接口,因此建议直接使用LinkedList。
遍历的方式有三种
- 根据下标
- Iterator
- 增强for
Set
与Collection或List接口不同的是,Set接口中不能加入重复元素,同时Set接口的实例无法像List接口(Collection本身就不能进行双向输出)一样双向输出。 Set接口常用的子类有HashSet(散列存放)、TreeSet(有序存放),两者都是非线程安全的。
特点:
- 无序存放
- 长度可变(集合和队列一样)
- 元素是不重复的
Map
存入的对象以键值对的形式存在,Map中的键是不能重复的,但值是可以重复的。 HashMap:无序存放,key不许重复 TreeMap:可以排序,按照key排序,key不许重复
特点:
- 一个K对应一个V,K是一个set集合
- 是不可重复的
- 无序的
- 如果加入相同K的键值对时,则会替换原来的键值对