2020-04-20

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:内存连续结构数据访问特点

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:LinkedList类结构图
图2:LinkedList类结构图及特点


2.2、LinkedList集合常用方法

图3:LinkedList集合常用方法

3、栈结构与队列结构

存储的数据的组织特点。线性表,链表,树。。。。

栈:Stack,这种数据结构的特点last In First Out,简称LIFO,后进先出。

队列:queue,First in First out,简称FIFO,先进先出。

图4:栈结构
图5:队列结构

4、比较

图6:比较
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 780评论 0 2
  • ​ 在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处...
    Java帮帮阅读 1,458评论 0 6
  • 一、为什么会出现集合类 1.集合是一个容器,为了方便的对多个对象进行操作。 2.集合容器同数组容器的...
    大禹编程扛把子阅读 602评论 0 0
  • Java集合:LinkedList和Queue 今天我们来探索一下LinkedList和Queue,以及Stack...
    2Roc阅读 362评论 0 0
  • 简介 LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构...
    Java面试指南阅读 436评论 0 1