Java的集合
Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,如栈、队列等。除此之外,Java集合还可用于保存具有映射关系的关联数组。Java集合大致可分为List、Set、Queue和Map四种体系,其中List代表有序、重复的集合;Set代表无序、不可重复的集合;而Map则代表具有映射关系的集合,Java5又增加了Queue体系集合,代表一种队列集合实现。
Java集合概述
为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类,所有的集合类都位于 java.util包下。
集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);而集合里只能保存对象(实际上只是保存对象的引用变量,但通常习惯上认为集合里保存的是对象)。
Java的集合类主要由两个接口派生而出: Collection和Map, Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。如下所示是 Java集合简单结构图
List集合
List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。Lst集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List集合默认按元素的添加顺序设置元素的索引,例如第一次添加的元素索引为0,第二次添加的元素索引为1…
1、Vector是线程安全的,ArrayList不是线程安全的。
2、ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Vector是扩展1倍。
PS:Vector是历史遗留问题,现在已经基本不用
List常用方法
返回值 方法(形参) 说明
Boolean add(E e) 向列表的尾部添加指定的元素。
Void add(int index, Eelement)在列表的指定位置插入指定元素。
Boolean addAll(Collection c)添加指定 collection 中的所有元素到此列表的结尾,顺序是指定
collection 的迭代器返回这些元素的顺序。
Boolean addAll(int index,Collection c)将指定collection中的所有元素都插入到列表中的指定位置。
Void clear() 从列表中移除所有元素。
Boolean contains(Object o) 如果列表包含指定的元素,则返回 true。
Boolean containsAll(Collectionc) 如果列表包含指定 collection 的所有元素,则返回 true。
Boolean equals(Object o) 比较指定的对象与列表是否相等。
E get(int index) 返回列表中指定位置的元素。
Int indexOf(Object o)返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
Boolean isEmpty() 如果列表不包含元素,则返回 true。
Iterator iterator()返回按适当顺序在列表的元素上进行迭代的迭代器。
Int lastIndexOf(Object o)返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
E remove(int index) 移除列表中指定位置的元素。
Boolean remove(Object o) 从此列表中移除第一次出现的指定元素(如果存在)。
Boolean removeAll(Collectionc) 从列表中移除指定 collection 中包含的其所有元素。
Boolean retainAll(Collection c) 仅在列表中保留指定 collection 中所包含的元素。
E set(int index, Eelement) 用指定元素替换列表中指定位置的元素。
Int size() 返回列表中的元素数。
List subList(intfromIndex, inttoIndex)返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
Object[] toArray()返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。
T[] toArray(T[] a)返回按适当顺序(从第一个元素到最后一个元素)包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。