Day-26 ArrayList集合、LinkedList集合 、栈结构、队列结构
1.ArrayList集合
1.1、vector集合(了解)
Vector,是ArrayList的前身。也是数组的结构。古老的类。从jdk1.0的版本就有了。
特点:线程安全,效率低,后来被ArrayList替代了。
ArrayList和LinkedList都是线程不安全的,效率高。Collections工具类,可以获取线程安全的集合。
1.2ArrayList集合
public class ArrayList<E> extends AbstractList implements List, RandomAccess, Cloneable, Serializable。
ArrayList是List接口的大小可变数组的实现。实现了List接口中所有可选列表操作,并允许包括null在内的所有元素。除了实现List接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。
ArrayList集合,底层实现:采用数组的结构实现的。(最大的特点:内存连续)。也会叫做变长数组。
优点:遍历集合中的元素,效率很高
缺点:更改集合中的元素,效率相对低。
1.2、ArrayList集合常用方法
1:public boolean add (E e) {//} 将指定的元素添加到此列表的尾部。
2:public void add(int index, Eelement){//} 将指定的元素插入此列表中的指定位置。该位置后面的元素依次往后挪一个。
3:public boolean addAll(Collection <E> c){//} 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
4:public boolean addAll(int index,Collection<E> c){//}从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
5:public void clear(){//} 移除此列表中的所有元素。
6:public boolean contains(Object o){//} 如果此列表中包含指定的元素,则返回true。
7:public int indexOf(Object o){//} 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
8:public boolean isEmpty(){//} 如果此列表中没有元素,则返回true
9:public int lastIndexOf(Object o){//} 返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
10:public E remove (int index){//}移除此列表中指定位置上的元素。
11:public boolean remove(Object o){//}移除此列表中首次出现的指定元素(如果存在)。
12:public int size(){//} 返回此列表中的元素数。
13:public E get(int index){//} 返回此列表中指定位置上的元素。
14:public ArrayLis<E> set(int index,Eelement){//} 用指定的元素替代此列表中指定位置上的元素。
2、LinkedList集合
java.util包下,实现了下面这些接口Serializable,Cloneable,Iterable<E>,Collection<E>,Deque<E>,List<E>,Queue<E>
public class LinkedList<E> extends AbstractSequentialList implements List, Deque, Cloneable , Serializable{ //}
LinkedList类是List接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括null)。除了实现List接口外,LinkedList类还为在列表的开头及结尾get、remove和insert元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。此类实现Deque接口,为add、poll提供先进先出队列操作,以及其他堆栈和双端队列操作。所有操作都是按照双重链接列表的需要执行的。在列表中编索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。
2.2、LinkedList集合常用方法
3、栈结构与队列结构
存储的数据的组织特点。线性表,链表,树。。。。
栈:Stack,这种数据结构的特点last In First Out,简称LIFO,后进先出。
队列:queue,First in First out,简称FIFO,先进先出。