ArrayList和LinkedList

接口List

常用的实现类:ArrayList和LinkedList

ArrayList:底层是一个对象数组(Object[])

特点:增删慢,查找快。是一个有序的集合,容量默认是10,元素超过会增加到原来1.5倍。

ArrayList特有方法: ensureCapacity(int minCapacity);    //增加容量

          trimToSize();     //调整集合容量刚好符合元素个数

LinkedList: 底层是一个链表形式实现。

特点:增删快,查找慢。在内存中是无序的(链表形式),在打印出来是有序的。

特有方法:

添加:  addFirst();  把元素添加到集合的第一个

       addLast();  把元素添加到集合的最后一个

获取:  getFirst();   获取集合的第一个元素

     getLast();   获取集合的最后一个元素

删除:  removeFirst();  移除集合的第一个元素(并且会返回当前元素)

       removeLast();  移除集合的最后一个元素 (并且会返回当前元素)

如果集合中没有元素,获取和删除元素时会出现:NoSuchElementException异常--->没有找到元素的异常

LinkedList 数据结构:包含堆栈和队列结构;

1.栈(1.6):先进后出

  push();  //往栈中退出一个元素

  pop();   //取出最后一个推入的元素

(LinkedList使用push后变成栈结构, push进去的被pop取完后,就去pop索引0开始的元素)

2.队列(双端队列1.5):先进先出

  offer():   //添加元素到最后一个

  poll();     //取出最前的

返回一个逆序的迭代器对象(用于逆序遍历)

  descendingIterator()    

原文地址:https://www.cnblogs.com/z-jun/p/6123164.html