List接口基本介绍
List接口是Collection接口的子接口
- List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复
- List集合中的每个元素都有其对应的顺序索引,即支持索引
- List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素
- JDK API中List接口的实现类中常用的有:ArrayList、LinkedList、Vector
public class List_ {
@SuppressWarnings({"null"})
public static void main(String[] args) {
List list = new ArrayList();//向上转型
//1,List集合中元素有序(添加和取出顺序一致) 且可以重复
list.add("jack");
list.add("tom");
list.add("mary");
list.add("zl");
list.add("tom");
System.out.println("list=" + list);
//2,List集合每个元素都有对应的顺序索引,且索引是从0开始
System.out.println(list.get(1));//tom
}
}
结果
List接口的常用方法
- 1,插入元素 add(int index,Object ele):在index位置插入ele元素
- 2,添加多个其他集合的元素 addAll(int index,Collection eles):从原集合的index位置开始,将eles中所有元素添加进来
- 3,获取指定index位置的元素:get(int index)
- 4,获取首次出现的位置:indexOf(Object obj):返回obj在集合中首次出现的位置
- 5,获取末次出现的位置:lastIndexOf(Object obj):返回obj在集合中末次出现的位置
- 6,移除指定位置元素,并返回次元素:remove(int index)
- 7,替换制定位置元素:set(int index,Object ele)
- 8,返回子集合:subList(int fromIndex,int toIndex):返回从fromIndex到toIndex的子集合
注意子集合:fromIndex<=subList<toIndex
public class List_ {
@SuppressWarnings({"null"})
public static void main(String[] args) {
List list = new ArrayList();//向上转型
list.add("张三丰");
list.add("贾宝玉");
//1,插入元素 add(int index,Object ele):在index位置插入ele元素
list.add(0, "zl");
System.out.println("list=" + list);
//2,添加多个其他集合的元素 addAll(int index,Collection eles):从原集合的index位置开始,将eles中所有元素添加进来
List list1 = new ArrayList();
list1.add("jack");
list1.add("tom");
list.add(2, list1);
System.out.println("list=" + list);
//3,获取指定index位置的元素:get(int index)
System.out.println(list.get(0));//zl
//4,获取首次出现的位置:indexOf(Object obj):返回obj在集合中首次出现的位置
System.out.println(list.indexOf("zl"));//0
//5,获取末次出现的位置:lastIndexOf(Object obj):返回obj在集合中末次出现的位置
list.add(3,"zl");
System.out.println(list.lastIndexOf("zl"));//3
//6,移除指定位置元素,并返回次元素:remove(int index)
list.remove(0);
System.out.println("list="+list);
//7,替换制定位置元素:set(int index,Object ele)
list.set(1,"玛丽");
System.out.println("list="+list);
//8,返回子集合:subList(int fromIndex,int toIndex):返回从fromIndex到toIndex的子集合
//注意子集合:fromIndex<=subList<toIndex
List subList1 = list.subList(1, 3);
System.out.println("subList1="+subList1);
}
}
List的三种遍历方式
说明:LinkedList和ArrayList的使用方式是一样的
- 方式一:使用iterator(迭代器)
Iterator iter = col.iterator();
while(iter.hasNext())
{Obiect o =iter.next} - 方式二:使用增强for
for(Object o:col){
} - 方式三:使用普通for
for(int i = 0 ;i<list.size();i++){
Object object = list.get(i);
System.out.println(object);}
public class ListFor {
@SuppressWarnings({"null"})
public static void main(String[] args) {
//List 接口的实现子类 ArrayList LinkedList Vector
List list1 = new ArrayList();
List list2 = new Vector();
List list = new LinkedList();
list.add("jack");
list.add("tom");
list.add("鱼香肉丝");
list.add("北京烤鸭子");
//1,迭代器
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println(obj);
}
//2,增强for
System.out.println("====增强for========");
for(Object o:list){
System.out.println(o);
}
//3,使用普通for
System.out.println("=========普通for=========");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
结果