类集设置的目的 类集设置的目的是为处理对象的动态数组。 所有关于类集的操作都放在java.util包中 三大类集接口:Collection<E>接口、Map<E>接口、Iterator<E>接口 |
Collection接口 一、Collection接口的定义 public interface Collection<E> extends Iterable<E> <E>带有泛型,继承了Iterable接口,表示可迭代的
二、Collection接口的抽象方法(15个) 只要是接口,其中定义的方法都是公有的并且是抽象的。 1、public boolean add(E e) 2、public boolean addAll(Collection<? extends E> c) 3、public void clear() 4、public boolean contains(Object o) 5、public boolean containsAll(Collection<?> c) 6、public boolean equals(Object o) 7、public int hashCode() 8、public boolean isEmpty() 9、public Iterator<E> iterator() 10、public boolean remove(Object o) 11、boolean removeAll(Collection<?> c) 12、boolean retainAll(Collection<?> c) 13、public int size() 14、public Object[] toArray() 15、<T> T[] toArray(T[] a)
三、Collection接口常用的三个直接子接口 List、Set、Queue 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个扩展的: 1、public void add(int index,E element) 2、boolean addAll(int index,Collection<? extends E> c) 3、public E get(int index) 4、public int indexOf(Object o) 5、public int lastIndexOf(Object o) 6、public ListIterator<E> listIterator() 7、public ListIterator<E> listIterator(int index) 8、public E remove(int index) 9、public E set(int index,E element) 10、List<E> subList(int fromIndex,int toIndex)
三、List接口的子类 AbstractList<E>类、ArrayList<E>类、Vector<E>类、AbstractSequentialList <E>类、LinkedList<E>类 1、AbstractList<E>类:public abstract class AbstractList<E>extends AbstractCollection<E>implements List<E> 其中AbstractCollection<E>类的定义为:public abstract class AbstractCollection<E>extends Object implements Collection<E> 2、ArrayList<E>类:public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable 3、Vector<E>类:public class Vector<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable 4、AbstractSequentialList <E>类:public abstract class AbstractSequentialList<E>extends AbstractList<E> 5、LinkedList<E>类:public class LinkedList<E>extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, Serializable
四、AbstractList<E>类 1、AbstractList<E>类是一个抽象类,此处采用了适配器设计模式,这样AbstractList<E>类的子类就可以不用去实现List接口已在AbstractList<E>类中实现过的抽象方法,但是在AbstractList<E>类中没有实现的List接口的抽象方法,AbstractList<E>类其子类(非抽象的)就必须去实现。
因为AbstractList<E>类是一个抽象类,所以可以不一一实现其父接口List的所有抽象方法。但是AbstractList<E>类的具体子类就必须一一实现AbstractList<E>类未实现的父接口List的其他抽象方法和AbstractList<E>类扩展的抽象方法。
2、AbstractList<E>类的子类 AbstractList<E>类的子类有:ArrayList<E>类、Vector<E>类、AbstractSequentialList <E>类
3、AbstractList<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>类的抽象方法。
4、AbstractSequentialList <E>类 AbstractSequentialList <E>类也是一个抽象方法,其子类有LinkedList<E>类,而这个子类的特点也是在继承了AbstractSequentialList <E>类之后,也显式继承了List接口,同样其原因是想重新实现List的所有抽象方法。或者说指明LinkedList<E>类兼容List接口定义的标准。
5、AbstractList<E>类的构造方法 protected AbstractList()
6、AbstractList<E>类的操作方法(16个) (1)实现List接口中原来Collection接口就有的(5个) 1、public boolean add(E e) 2、public void clear() 3、public boolean equals(Object o) 4、public int hashCode() 5、public Iterator<E> iterator()
(2)实现List接口中扩展的原来Collection接口没有的(10个) 1、public void add(int index,E element) 2、boolean addAll(int index,Collection<? extends E> c) 3、public E get(int index) 4、public int indexOf(Object o) 5、public int lastIndexOf(Object o) 6、public ListIterator<E> listIterator() 7、public ListIterator<E> listIterator(int index) 8、public E remove(int index) 9、public E set(int index,E element) 10、List<E> subList(int fromIndex,int toIndex)
(3)AbstractList<E>类自己扩展的(1个) 1、protected void removeRange(int fromIndex,int toIndex)
|