Java 容器类 List、ArrayList、Vector 及
map、HashTable、HashMap 分别的区别.
一、List 与 ArrayList 的区别
List->AbstractList->ArrayList
(1) List 是一个接口,ArrayList 是一个实现了 List 接口的具体类。
他们是父子关系,我们常用的是 ArrayList,但常用 List 的引用去操作 ArrayList
这是一个简单的面向接口编程的一种,如:List myList = new ArrayList();
(2)他们主要是用来保存对象的集合,记得是保存对象的哦,你可别传个 int(类)进去
(3)要取出它里面保存的对象可以用下标,如:Object aaa = myList.get(0);
这样我们就把保存在 myList 里的第一个对象取出来给了
二、详解
好像 List 和 Map 都是接口
不能实例化的
以前这么写 List list = new Vector();
现在这么写 List list = new ArrayList();
用 ArrayList 代替了 Vector 因为前者的性能比后者好;
但是两个都是实现了 List 借口的
同理 Map map = new HashTable();(以前)
Map map = new HashMap();(现在)
ArrayList 和 HashMap 是 异 步 的 , Vector 和 HashTable 是 同 步 的 , 所 以 Vector 和
HashTable 是线程安全的,而 ArrayList 和 HashMap 并不是线程安全的。因为同步需要花费
机器时间,所以 Vector 和 HashTable 的执行效率要低于 ArrayList 和 HashMap。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
List 接口
List 是有序的 Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够
使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素,这类似于 Java
评论1