package com.wonders.week01.collection;
import java.util.LinkedList;
import java.util.List;
/**
* JDK1.7
* LinkedList学习
* (1)是一种底层实现由双链表组成的集合
* (2)实现了List和Deque接口。
* (3)不是线程安全的集合
* @author liyongyong
*
*/
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<Integer>();
List<Integer> list2 = new LinkedList<Integer>();
list2.add(5);
list2.add(6);
list2.add(7);
//给集合添加第一个元素
list.addFirst(1);
//给集合添加最后一个元素
list.addLast(4);
//把元素添加到集合的末尾
list.add(2);
for(Integer in:list){
System.out.print(in + " ");
}
System.out.println();
//获取linkedlist集合的第一个元素
Integer first = list.getFirst();
//获取linkedlist集合的最后一个元素
Integer last = list.getLast();
System.out.println("集合第一个元素是: " + first);
System.out.println("集合最后一个元素是: " + last);
//复制集合的内容
LinkedList<Object> linkedList = new LinkedList<Object>();
linkedList.add(list.clone());
for(Object num:linkedList){
System.out.print(num);
}
System.out.println();
//移除集合中的第一个元素
//list.removeFirst();
//移除集合中的最后一个元素
//list.removeLast();
boolean flag = list.contains(4);
System.out.println("是否linkedlist集合中包含元素4 : " + flag);
int size = list.size();
System.out.println("list集合的元素个数为 :" + size);
//移除集合索引为1的元素
list.remove(1);
for(Integer num:list){
System.out.print(num + " & ");
}
System.out.println();
//将某个集合追加到另外一个集合的末尾
list.addAll(list2);
for(Integer num:list){
System.out.print(num + " % ");
}
System.out.println();
//将某个集合插入指定的位置处
list.addAll(0, list2);
for(Integer num:list){
System.out.print(num + " @ ");
}
System.out.println();
//将集合中的元素清空
list2.clear();
//判断集合是否为空
boolean empty = list2.isEmpty();
System.out.println("集合为空返回true,否则返回false " + empty);
//获取list集合中索引为0的元素
Integer numInteger = list.get(0);
System.out.println("结果是: " + numInteger);
//用指定元素替换集合中指定位置的元素值
list.set(0, 99);
for(Integer a:list){
System.out.print(a + " $$ ");
}
System.out.println();
list.add(1, 38);
for(Integer a:list){
System.out.print(a + " == ");
}
System.out.println();
//将集合中的所有元素全部移除
//list.remove();
//返回元素在集合中的索引值,如果不存在则返回-1
int index = list.indexOf(6);
System.out.println("返回元素在集合中的索引是 : " + index);
//返回元素在集合中最后一次出现的位置索引值
int lastIndex = list.lastIndexOf(6);
System.out.println("最后一次出现的位置索引是 :" + lastIndex);
//返回集合中的第一个元素
Integer peek = list.peek();
System.out.println("第一个元素是: " + peek);
//返回集合list中的第一个元素
Integer element = list.element();
System.out.println("element是 : " + element);
//返回集合中的第一个元素
Integer num = list.poll();
System.out.println("poll的值是 : " + num);
boolean offer = list.offer(23);
System.out.println("追加的值是否成功 ? " + offer);
boolean fnum = list.offerFirst(0);
System.out.println("集合的首端添加元素是否成功? " + fnum);
boolean lnum = list.offerLast(21);
System.out.println("集合的末端添加元素是否成功? " + lnum);
//获取集合的第一个元素
Integer n1 = list.peekFirst();
Integer n2 = list.pollFirst();
System.out.println("集合的第一个元素是 : " + n1);
System.out.println("集合的第一个元素是: " + n2);
//获取集合的最后一个元素
Integer n3 = list.peekLast();
Integer n4 = list.pollLast();
System.out.println("n3 : " + n3);
System.out.println("n4 : " + n4);
//在集合的第一个位置插入一个值
list.push(2);
for(Integer a : list){
System.out.print( a + " # ");
}
System.out.println();
//移除集合的第一个元素
list.pop();
for(Integer a : list){
System.out.print( a + " ! ");
}
System.out.println();
//移除集合中第一出现的元素
list.removeFirstOccurrence(6);
//移除集合中最后一次出现的元素
list.removeLastOccurrence(7);
for(Integer a : list){
System.out.print( a + " | ");
}
System.out.println();
Object[] arr = list.toArray();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " $$ ");
}
}
}