JDK1.8
构造方法
- LinkedList() 一个空的LinkedList
- LinkedList(Collection<? extend E> c) 可将一个集合初始化为LinkedList
常用方法
- add(E e) 添加元素,尾部添加,返回boolean
- add(int index, E element) 指定索引处添加元素, void
- add(Collection<? extend E> c)可将一个集合的元素添加至末尾处,boolean
- add(int index, Collection<? extend E> c)可将一个集合的元素添加指定索引处,boolean
- addFirst(E e) 头部插入元素, void
- addLast(E e) 尾部插入元素,void
- clear() 清除元素,void
- clone() 克隆一个副本,Object
- contains(Object o) 是否包含某个元素, boolean
- element() 检索头部元素,不删除,返回对应元素类型
- get(int index) 获取索引处元素值, 返回对应元素类型
- getFirst() 获取头部元素值,返回对应元素类型
- getLast() 获取尾部元素值,返回对应元素类型
- indexOf(Object o) 元素o首次出现的位置,没有返回-1
- lastIndexOf(Object o) 元素o逆向首次出现的位置,没有返回-1
- listIterator(int index) 返回从索引处开始的迭代器list
- offer(E e) 尾部添加元素,boolean
- offerFirst(E e) 头部添加元素, boolean
- offerLast(E e) 尾部添加元素, boolean
- peek()获取头部元素值,返回对应元素类型
- peekFirst()获取头部元素值,返回对应元素类型
- peekLast() 获取尾部元素值,返回对应元素类型
- poll() 检索头部并删除头部元素,返回检索元素值
- pollFrist()检索头部并删除头部元素,返回检索元素值
- pollLast() 检索尾部并删除头部元素,返回检索元素值
- remove() 检索头部并删除头部元素,返回检索元素值
- remove(int index) 删除索引处元素,返回检索元素值
- remove(Object o)删除第一次出现的o元素, boolean
- removeFirst() 删除头部元素,返回元素值
- removeFirstOccurrence(Object o) 删除第一次出现的o元素, boolean
- removeLast()删除尾部元素,返回元素值
- removeLastOccurrence(Object o)删除逆向第一次出现的o元素, boolean
- set(int index, E element) 把索引处的位置的值设置为element, 返回元素值
- size() 返回list长度
- toArray() 返回数组类型,具体用法看下面实践内容
- pop() 尾部出栈一个元素,返回元素值
- push(E e) 尾部插入一个元素,void
实践代码
public static void main(String[] args){
//构造方法
LinkedList<String> a = new LinkedList<>();//默认长度为10
HashSet<String> hs = new HashSet<String>();
hs.add("a");
hs.add("b");
hs.add("c");
LinkedList<String> c = new LinkedList<>(hs);//可以将一个实现Collection接口的类初始化
System.out.println("默认构造函数长度:"+a.size());
System.out.println("Collection初始化为LinkedList:"+c);
a.add("a1");//添加至末尾
a.add(0,"a2");//该方法只能在a的长度以内插入,否则抛出异常报错
System.out.println("添加元素"+a);
a.addAll(hs);//添加Collection元素
System.out.println("添加集合元素"+a);
a.addAll(0, hs);//在指定位置添加Collection元素
System.out.println("指定索引处添加元素"+a);
a.addFirst("first");//头部添加元素
a.addLast("end");//尾部添加元素
LinkedList<String> d = (LinkedList<String>)a.clone();//克隆元素
System.out.println("clone后的结果:"+d);
d.clear();
System.out.println("clear后的结果:"+d);
System.out.println("是否包含某一个元素:"+a.contains("a"));
System.out.println("通过索引获取某一个元素:"+a.get(0));
System.out.println("检索头部元素:"+a.element());
System.out.println("通过获取第一个元素:"+a.getFirst());
System.out.println("通过获取最后一个元素:"+a.getLast());
System.out.println("元素首次出现的索引位置:"+a.indexOf("a"));
System.out.println("判断是否为空:"+a.isEmpty());
System.out.println("最后一个位置处添加元素:"+a.offer("offer") + a);
System.out.println("第一个位置处添加元素:"+a.offerFirst("offerFirst") + a);
System.out.println("最后一个位置处添加元素:"+a.offerLast("offer") + a);
System.out.println("检索头部元素:"+a.peek());
System.out.println("通过获取第一个元素:"+a.peekFirst());
System.out.println("通过获取最后一个元素:"+a.peekLast());
System.out.println("检索头部元素并删除:"+a.poll() + a);
System.out.println("检索头部元素并删除:"+a.pollFirst() + a);
System.out.println("检索尾部元素并删除:"+a.pollLast() + a);
System.out.println("获取尾部元素并出栈:"+a.pop() + a);
a.push("push");
System.out.println("入栈后:"+a);
System.out.println("移除索引位置上的元素:"+a.remove(0));
System.out.println(a);
System.out.println("移除首次出现的元素:"+a.remove("a1"));//返回boolean
System.out.println(a);
System.out.println("移除头部的元素:"+a.remove());//返回元素值
System.out.println(a);
System.out.println("移除头部的元素:"+a.removeFirst());//返回元素值
System.out.println(a);
a.addLast("a2");
System.out.println(a);
System.out.println("移除逆向首次出现的元素:"+a.removeLastOccurrence("a2") + a);//返回boolean
System.out.println("移除尾部的元素:"+a.removeLast() + a);//返回元素值
a.set(1,"1");
System.out.println(a);
// String[] aa = (String[])a.toArray();
// System.out.println(aa);
String[] bb = new String[a.size()];
a.toArray(bb);
System.out.println(bb);
// 循环迭代
for(String str: a){
System.out.print(str+" ");
}
System.out.println();
//Iterator 迭代
Iterator it = a.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println();
//forEach 迭代循环, java1.8中含有的
a.forEach(show->{
System.out.print(show+" ");
});
System.out.println();
ListIterator it1 = a.listIterator();
while(it1.hasNext()){
System.out.print(it1.next()+" ");
}
System.out.println();
}