java vector类 数组 链表 List类

集合框架(Vector的特有功能)
* A:Vector类概述

* B:Vector类特有功能

* public void addElement(E obj)
* public E elementAt(int index)
* public Enumeration elements()

* C:案例演示 

* Vector的迭代

Vector v = new Vector(); //创建集合对象,List的子类
v.addElement("a");
v.addElement("b");
v.addElement("c");
v.addElement("d");

//Vector迭代
Enumeration en = v.elements(); //获取枚举
while(en.hasMoreElements()) { //判断集合中是否有元素
System.out.println(en.nextElement());//获取集合中的元素
}

==========================================================================================

集合框架(数据结构之数组和链表)


* A:数组
* 查询快修改也快
* 增删慢
* B:链表
* 查询慢,修改也慢
* 增删快

集合框架(List的三个子类的特点)
* A:List的三个子类的特点
*
ArrayList:
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。


Vector:
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。


Vector相对ArrayList查询慢(线程安全的)


Vector相对LinkedList增删慢(数组结构)


LinkedList:
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。

LinkedList根据索引取出元素  源码:

Node<E> node(int index) {
// assert isElementIndex(index);

if (index < (size >> 1)) {
Node<E> x = first;
for (int i = 0; i < index; i++)
x = x.next;
return x;
} else {
Node<E> x = last;
for (int i = size - 1; i > index; i--)
x = x.prev;
return x;
}
}

Vector和ArrayList的区别
Vector是线程安全的,效率低
ArrayList是线程不安全的,效率高


共同点:都是数组实现的
ArrayList和LinkedList的区别
ArrayList底层是数组结果,查询和修改快
LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢


共同点:都是线程不安全的


* B:List有三个儿子,我们到底使用谁呢?
查询多用ArrayList
增删多用LinkedList
如果都多ArrayList

原文地址:https://www.cnblogs.com/yimian/p/6512905.html