接口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()