List: 有存储顺序的Collection, 可重复,List可存放重复元素,元素存取是有序的。
---|ArrayList: 数组实现, 查找快, 增删慢;
由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以查找时较快。
---|LinkedList: 链表实现, 增删快, 查找慢;
由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素. 这样的增删效率较高,但查询时需要一个一个的遍历, 所以效率较低。
list基本方法实例:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
public class TestList {
public static void main (String[] args){
//ArrayList
ArrayList sysList = new ArrayList();
sysList.add("pgw");
sysList.add("cashier");
String testStr = "pgw";
System.out.println(sysList);
//判断集合中是否包含指定对象
if (sysList.contains(testStr)){
System.out.println("包含指定字符串:"+testStr);
}
else {
System.out.println("不包含指定字符串:"+testStr);
}
//判断list是否为空
if (sysList.isEmpty()){
System.out.println("该list为空");
}
//使用迭代器遍历ArrayList
Iterator <String> it = sysList.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
//移除指定对象
sysList.remove("pgw");
System.out.println(sysList);
//获取容器大小
int size = sysList.size();
System.out.println("容器大小:"+size);
//获取指定索引的值
Object strOne = sysList.get(0);
System.out.println("ArrayList第一个元素:"+strOne);
//增加及修改指定索引的元素
sysList.add(1,"mpg");
sysList.set(1,"paympg");
System.out.println("增加并修改特定索引处的元素后:"+sysList);
//LinkedList
LinkedList payList = new LinkedList();
payList.add("pgw");
payList.add("atom");
payList.add("pbs");
System.out.println(payList);
//判断集合中是否包含指定对象
if (payList.contains(testStr)){
System.out.println("LinkedList包含指定字符串:"+testStr);
}
else {
System.out.println("LinkedList不包含指定字符串:"+testStr);
}
//使用迭代器遍历LinkedList
Iterator <String> strit = payList.iterator();
while (strit.hasNext()){
System.out.println(strit.next());
}
//移除指定对象
payList.remove("pgw");
System.out.println(payList);
//判断list是否为空
if (payList.isEmpty()){
System.out.println("该list为空");
}else {
System.out.println("该Linkedlist不为空");
}
//获取容器大小
int paylistSize = payList.size();
System.out.println("LinkedList容器大小:"+paylistSize);
//addFirst:将指定元素插入列表开头
//addLast:将指定元素插入列表结尾
payList.addFirst("ptr");
System.out.println(payList);
//getFirst:返回列表的第一个元素
//getLast:返回列表的最后一个元素
System.out.println(payList.getLast());
//pop:从列表所表示的堆栈弹出一个元素
//push:将元素推入列表所表示的堆栈
payList.pop();
System.out.println("pop出一个元素后:"+payList);
//equals方法进行对比
if (sysList.equals(payList)){
System.out.println("true");
}else {
System.out.println("false");
}
}
}