JavaSE应用程序类集部分详解2

五、ArrayList<E>

1ArrayList<E>类的定义

public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable

ArrayList<E>类继承了AbstractList<E>的功能,同时又显式实现了List<E>接口,实现了RandomAccess接口,表示可以支持快速随机访问。

其中RandomAccess接口是个标记接口(即无方法的接口),此处本来List<E>接口中有E  get(int index)方法可以做到快速随机访问,为什么还要单独实现RandomAccess接口呢?

原因是做个标记,在其他地方如果要用到RandomAccess接口类型的参数时或者在某些算法中需要RandomAccess接口标记,则ArrayList<E>类就满足条件了。标记接口学过的还有:Serializable接口和Cloneable接口。

此处ArrayList<E>类也实现了Cloneable接口和Serializable接口,分别表示可克隆的和可被序列化的。

 

2ArrayList<E>类的操作方法(3个)

1public ArrayList()

2public ArrayList(Collection<? extends E> c)

3public ArrayList(int initialCapacity)

 

3ArrayList<E>类的操作方法(20个)

1)实现List<E>接口中原来Collectiont<E>接口就有的(9个)

1public boolean add(E e)

2public boolean addAll(Collection<? extends E> c)

3public void clear()

4public boolean contains(Object o)

5public boolean isEmpty()

6public boolean remove(Object o)

7public int size()

8public Object[] toArray()

9<T> T[] toArray(T[] a)

 

2实现List t<E>接口中扩展的原来Collection接口没有的7

1public void add(int index,E element)

2boolean addAll(int index,Collection<? extends E> c)

3public E get(int index)

4public int indexOf(Object o)

5public int lastIndexOf(Object o)

6public E remove(int index)

7public E set(int index,E element)

 

3)覆写Object类的 Object  clone()方法

 

4)实现AbstractList<E>类扩展的的抽象方法

1protected void removeRange(int fromIndex,int toIndex)

 

5ArrayList<E>类自己扩展的(2个)

1public void ensureCapacity(int minCapacity)

2public void trimToSize()

 

六、Vector<E>

1Vector<E>类的定义

public class Vector<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable

说明同ArrayList<E>

 

2Vector<E>类的构造方法

ArrayList<E>类多一个public Vector(int initialCapacity,int capacityIncrement)

 

3、其操作方法在(具有和ArrayList<E>类相同的方法)基础上又扩展了更多其他的,详见文档

 

七、ArrayList<E>类和Vector<E>类的区别

No.

区别点

ArrayList

Vector

1

引入时间

是新的类,是在JDK 1.2之后推出的

是旧的类是在JDK 1.0的时候就定义的

2

性能

性能较高,是采用了异步处理

性能较低,是采用了同步处理

3

输出

支持IteratorListIterator输出

除了支持IteratorListIterator输出,还支持Enumeration输出

 

八、LinkedList<E>

1LinkedList<E>类的定义

public class LinkedList<E> extends AbstractSequentialList<E>  implements List<E>, Deque<E>, Cloneable, Serializable

 

2AbstractSequentialList<E>类的操作方法

1)实现List接口中原来Collection接口就有的(1个)

1public Iterator<E> iterator()

 

2)实现List接口中扩展的原来Collection接口没有的(10个)

1public void add(int index,E element)

2boolean addAll(int index,Collection<? extends E> c)

3public E get(int index)

4public ListIterator<E> listIterator(int index)

5public E remove(int index)

6public E set(int index,E element)

 

3LinkedList<E>类的操作方法

此类和ArrayList<E>类比较除了继承的类不同之外,比ArrayList<E>类多实现了一个Deque<E>接口,而Deque<E>接口是Queue<E>接口的子接口,因此比较明显的不同之处是多了如下方法:

1public boolean add(E e)

2public E element()

3public boolean offer(E e)

4public E peek()

5public E poll()

6public E remove()

你可能感兴趣的:(jdk,C++,c,算法,C#)