List,set,Map 的用法和区别
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection 接口
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素
(Elements)。一些 Collection 允许相同的元素而另一些不行。一些能排序而另一些不行 。
Java SDK 不提供直接继承自 Collection 的类,Java SDK 提供的类都是继承自 Collection 的
“子接口”如 List 和 Set。
所有实现 Collection 接口的类都必须提供两个标准的构造函数:无参数的构造函数用
于 创 建 一 个 空 的 Collection , 有 一 个 Collection 参 数 的 构 造 函 数 用 于 创 建 一 个 新 的
Collection,这个新的 Collection 与传入的 Collection 有相同的元素。后一个构造函数允许用
户复制一个 Collection。
如何遍历 Collection 中的每一个元素?不论 Collection 的实际类型如何,它都支持一个
iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问 Collection 中每一个
元素。典型的用法如下:
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
由 Collection 接口派生的两个接口是 List 和 Set。
List 接口
List 是有序的 Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够
使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素,这类似于 Java
的数组。
和下面要提到的 Set 不同,List 允许有相同的元素。
除了具有 Collection 接口必备的 iterator()方法外,List 还提供一个 listIterator()方法,返
回一个 ListIterator 接口,和标准的 Iterator 接口相比,ListIterator 多了一些 add()之类的方法,
允许添加,删除,设定元素,还能向前或向后遍历。
实现 List 接口的常用类有 LinkedList,ArrayList,Vector 和 Stack。
LinkedList 类
LinkedList 实 现 了 List 接 口 , 允 许 null 元 素 。 此 外 LinkedList 提 供 额 外 的
get,remove,insert 方法在 LinkedList 的首部或尾部。这些操作使 LinkedList 可被用作堆栈