LinkedList
底层使用双向链表的数据结构形式来存储,适合于插入或删除,不适合遍历。
有多个构造方法(有参和无参)
ArrayList<String> array = new ArrayList<String>();
LinkedList<String> linked = new LinkedList<String>();
LinkedList<String> linked = new LinkedList<String>(array);
// 因为ArrayList和LinkedList都属于Collection下的
// 当array的泛型小于等于linked的时候才可以这么做
常用方法
1.增:add(); addAll(); addFirst(); addLast()
2.删:remove(); clear()
3.改:set();
4.查:get(); contains(); element(); getFirst();
getLast(); indexOf(); lastIndexOf(); size();
这些方法几乎都有多个重载。我就不列举了
Vector
Vector是ArrayList集合的早期版本
Vector底层也是利用(动态)数据的形式存储
Vector是线程同步的(synchronized) 安全性高,但是效率低
ArrayList扩容的时候是变为原来的1.5倍,Vector扩容的时候是变为原来的2倍
方法有add() get() remove() size() capacity()等
Stack
栈
继承了Vector
只有一个无参构造方法
除了继承过来的方法外,有几个特殊的方法:
push(); 增
pop(); 删 将某一个元素从栈顶取出来并删除
peek(); 查。查看栈顶元素
empty(); 判断栈内元素是否为空
search(); 查找给定的元素在栈中的位置,不是索引,是第几个
Queue
用得不多。Queue是一个接口
通常用实现这个接口的类 LinkedList ArrayDeque
方法:
offer();增 返回boolean
poll(); 删
peek(); 查