List接口
list--顾名思义,清单、列表、目录。
所以存放在list中的元素都是按顺序存放的,同时可以按索引查找
//实例化一个Arraylist,使其编译类型为List List list = new ArrayList(); //存放元素 list.add("123"); list.add("456"); list.add("789"); //增强for循环遍历输出 for (Object obj: list){ System.out.println(obj); } //输出结果如下:(按输入顺序存放)
查找:索引下标从0开始
System.out.println(list.get(1));//输出第二位的元素 //输出结果如下:
list 常用方法:
list.add(1,"000");//在下标为1处添加元素"000"
list.addAll(1,list1);//在下标为1处添加集合list1
list.set(1,"jjj");//将下标为1位置上的元素替换为"jjj"
list.get(3);//输出下标为3的元素
list.remove(0);//删除0号位置上的元素
list.subList(0,2);//返回下标在[0,2)范围内的所有元素
list.indexOf("789");//输出当前元素下标
list.lastIndexOf("000");//返回000在当前集合最后一次出现的下标位置
实现子类:
1、Arraylist
可放null,且可放多个
arraylist除线程不安全外,基本等同于vector
2、vector
底层由数组实现
线程同步即线程安全
Arraylist与vector比较
3、LinkedList
底层实现双向链表和双向队列的特点(添加、删除效率高)
可添加任意元素包括null,元素可重复
线程不安全
Arraylist和Linklist比较