package com.xiao.list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.junit.Test;
/**
* @author 笑笑
* @Date 2018年2月8日上午11:03:45
*
*/
public class ListDemo {
// void add(int index, E element) 根據索引插入元素
@Test
public void test1(){
List list = new ArrayList();
list.add("abc");
list.add("abc");
list.add("abc");
list.add("abc");
System.out.println(list);
list.add(1, "cde");//根據索引插入元素,索引上原有的數據往后順延
System.out.println(list);
}
// E get(int index) 返回集合中指定位置的元素
@Test
public void test2(){
List list = new ArrayList();
list.add("abc");
list.add("abc");
list.add("abc");
list.add("abc");
String a = list.get(2); //根據索引取元素
System.out.println(a);
}
// E remove(int index) 移除指定位置上的元素,返回移除的元素
@Test
public void test3(){
List list = new ArrayList();
list.add("abc");
list.add("cde");
list.add("fff");
list.add("ggg");
String remove = list.remove(1);//移除指定位置的元素 返回移除的元素
System.out.println(remove);
System.out.println(list);
}
// E set(int index, E element) 修改指定位置的元素 返回修改之前的元素
@Test
public void test4(){
List list = new ArrayList();
list.add("abc");
list.add("cde");
list.add("fff");
list.add("ggg");
String set = list.set(1, "123");//修改指定位置的元素 返回修改之前的元素
System.out.println(set);
System.out.println(list);
}
//迭代器的並發修改異常
@Test
public void test5(){
List list = new ArrayList();
list.add("abc");
list.add("cde");
list.add("fff");
list.add("ggg");
Iterator iterator = list.iterator();
while(iterator.hasNext()){
String string = iterator.next();
if(string.equals("fff")){
list.add("ccc");//如果取出來的元素等於fff 就添加一個ccc 這樣會出現並發修改異常
}
System.out.println(list);
}
}
//LinkedList的特性
//void addFirst(E e) 在列表的開頭添加元素
//void addLast(E e) 在列表的結尾添加元素
// E getFirst() 獲取鏈表的第一個元素
// E getLast() 獲取鏈表的第一個元素
// E removeFirst 移除並返回此列表的第一個元素
// E removeLast 移除並返回此列表的最后一個元素
@Test
public void test6(){
LinkedList list = new LinkedList<>();
list.add("abc");
list.addFirst("ced");//在列表的開頭添加元素
list.addLast("ccc"); //在列表的結尾添加元素
System.out.println(list);
if(list.isEmpty()){//如果鏈表為空 則不能取元素
String first = list.getFirst();//獲取鏈表的第一個元素
String last = list.getLast();//獲取鏈表的第一個元素
System.out.println(first);
System.out.println(last);
}
}
}