集合2——List

实现List接口的集合类,具备的特点是有序,可重复
有序:集合的有序不是指自然顺序,是指添加顺序和出来的顺序是一样的

List中特有的方法:
一、添加
1.add(int index,E element):把元素添加到集合的指定位置

List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  list.add(2, "赵六");//将元素添加至集合指定位置
  System.out.println(list);

在这里插入图片描述
2.addAll(int index,collection<? extends E> c):把一个集合放入到另一个集合的指定位置

List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  List list2=new ArrayList();
  list2.add("狗娃");
  list2.add("狗剩");
  list.addAll(1, list2);
  System.out.println(list);

在这里插入图片描述
二、获取
1.get(int index):根据索引值获取集合中的元素

List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  System.out.println(list.get(1));//获取集合中索引值为1的元素

在这里插入图片描述
2.indexOf(Object o):找出指定元素在集合中第一次出现的索引值

List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  list.add("李四");
  list.add("李四");
  System.out.println(list.indexOf("李四"));//找出李四在集合中第一次出现的索引值

在这里插入图片描述
3.lastIndexOf(Object o):找出指定元素在集合中最后一次出现的索引值

List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  list.add("李四");
  list.add("李四");
  System.out.println(list.lastIndexOf("李四"));//找出李四在集合中最后一次出现的索引值

在这里插入图片描述
4.subList(int fromIndex,int toIndex):指定开始于结束得索引值,截取集合中的元素

List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  list.add("李四");
  list.add("李四");
  System.out.println(list.subList(1, 3));//获取集合中索引值从1到3的元素,包头不包尾

在这里插入图片描述
三、修改
1.set(int index,E element):使用指定的元素替换指定索引值元素

List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  list.add("李四");
  list.add("李四");
  list.set(3, "狗娃");//有狗娃替换集合中索引值为3的元素
  System.out.println(list);

在这里插入图片描述
四、迭代
1.listIterator():迭代器
listIterator特有的方法
(1)hasPrevious():判断是否存在上一个元素
(2)previous():获取上一个元素
(3)add(E e):把当前元素插入到当前指针指向的位置
(4)set(E e):替换迭代器最后一次返回的元素

使用三种方式遍历集合的元素:
1.使用get方式遍历
2.使用迭代器正序遍历
3.使用迭代器逆序遍历

// TODO Auto-generated method stub
  List list=new ArrayList();
  list.add("张三");
  list.add("李四");
  list.add("王五");
  list.add("赵六");
  //1.使用get方法遍历
  for(int i=0;i<list.size();i++){
   System.out.print(list.get(i)+","); 
  }
  System.out.println();
  //2.使用迭代器正序遍历
  ListIterator it=list.listIterator();
  while(it.hasNext()){
   System.out.print(it.next()+",");   
  }
  System.out.println();
  //3.使用迭代器逆序遍历
  while(it.hasPrevious()){
   System.out.print(it.previous()+",");
  }

在这里插入图片描述

使用迭代器遍历集合的注意事项:
1.在迭代器迭代元素过程中,不允许使用集合对象改变集合中的元素,如果需要添加或者删除元素,使用迭代器方法
如果使用了集合对象改变集合中的元素个数,那么就会出现ConvurrentModificationException异常


版权声明:本文为weixin_44871934原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。