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

类集设置的目的

类集设置的目的是为处理对象的动态数组。

所有关于类集的操作都放在java.util包中

三大类集接口:Collection<E>接口、Map<E>接口、Iterator<E>接口

Collection接口

一、Collection接口的定义

public interface Collection<E> extends Iterable<E>

<E>带有泛型,继承了Iterable接口,表示可迭代的

 

二、Collection接口的抽象方法(15个)

只要是接口,其中定义的方法都是公有的并且是抽象的

1public boolean add(E e)

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

3public void clear()

4public boolean contains(Object o)

5public boolean containsAll(Collection<?> c)

6public boolean equals(Object o)

7public int hashCode()

8public boolean isEmpty()

9public Iterator<E> iterator()

10public boolean remove(Object o)

11boolean removeAll(Collection<?> c)

12boolean retainAll(Collection<?> c)

13public int size()

14public Object[] toArray()

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

 

三、Collection接口常用的三个直接子接口

ListSetQueue

List 接口的定义:public interface List<E> extends Collection<E>

Set接口的定义:public interface Set<E>extends Collection<E>

Queue接口的定义:public interface Queue<E>extends Collection<E>

 

List接口

一、List<E>接口的定义

List 接口的定义public interface List<E> extends Collection<E>

继承了Collection接口,间接继承了Iterator接口

 

二、List接口的抽象方法(15继承的Collection +10个扩展的)

下面列出10个扩展的:

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 ListIterator<E> listIterator()

7public ListIterator<E> listIterator(int index)

8public E remove(int index)

9public E set(int index,E element)

10List<E> subList(int fromIndex,int toIndex)

 

三、List接口的子类

AbstractList<E>类、ArrayList<E>类、Vector<E>类、AbstractSequentialList <E>类、LinkedList<E>

1AbstractList<E>类:public abstract class AbstractList<E>extends AbstractCollection<E>implements List<E>

其中AbstractCollection<E>类的定义为:public abstract class AbstractCollection<E>extends Object  implements Collection<E>

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

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

4AbstractSequentialList <E>类:public abstract class AbstractSequentialList<E>extends AbstractList<E>

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

 

四、AbstractList<E>

1AbstractList<E>类是一个抽象类,此处采用了适配器设计模式,这样AbstractList<E>类的子类就可以不用去实现List接口已在AbstractList<E>类中实现过的抽象方法,但是在AbstractList<E>类中没有实现的List接口的抽象方法,AbstractList<E>类其子类(非抽象的)就必须去实现。

 

因为AbstractList<E>类是一个抽象类,所以可以不一一实现其父接口List的所有抽象方法。但是AbstractList<E>类的具体子类就必须一一实现AbstractList<E>类未实现的父接口List的其他抽象方法和AbstractList<E>类扩展的抽象方法。

 

2AbstractList<E>类的子类

AbstractList<E>类的子类有:ArrayList<E>类、Vector<E>类、AbstractSequentialList <E>

 

3AbstractList<E>类子类的特点

ArrayList<E>类、Vector<E>类、AbstractSequentialList <E>类这三个类在继承了AbstractList<E>类同时,又再次显式实现了List接口,原因是想重新实现List的所有抽象方法。或者说指明LinkedList<E>类兼容List接口定义的标准。

这样ArrayList<E>类、Vector<E>类这两个具体的类就必须实现List接口的所有抽象方法和AbstractList<E>类的所有抽象方法。

AbstractSequentialList <E>类又是抽象类,其可以部分实现List接口的抽象方法和AbstractList<E>类的抽象方法。

 

4AbstractSequentialList <E>

AbstractSequentialList <E>类也是一个抽象方法,其子类有LinkedList<E>类,而这个子类的特点也是在继承了AbstractSequentialList <E>类之后,也显式继承了List接口,同样其原因是想重新实现List的所有抽象方法。或者说指明LinkedList<E>类兼容List接口定义的标准。

 

5AbstractList<E>类的构造方法

protected AbstractList()

 

6AbstractList<E>类的操作方法(16个)

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

1public boolean add(E e)

2public void clear()

3public boolean equals(Object o)

4public int hashCode()

5public 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 int indexOf(Object o)

5public int lastIndexOf(Object o)

6public ListIterator<E> listIterator()

7public ListIterator<E> listIterator(int index)

8public E remove(int index)

9public E set(int index,E element)

10List<E> subList(int fromIndex,int toIndex)

 

3AbstractList<E>类自己扩展的(1个)

1protected void removeRange(int fromIndex,int toIndex)

你可能感兴趣的:(设计模式,C++,c,C#)