List中常见的方法和五种遍历方式

一.List集合的特有方法:

List集合也是一个接口,不能直接创建对象,可用向上转型的方式创建对象。

二.举例:


a.void add(int index,E element)->在此集合中的指定位置插入指定的元素

细节:原来索引上的元素会依次往后移


b.E remove(int index)->删除指定索引处的元素,返回被删除的元素(E代表元素)

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
​
public class A01_ListDemo1 {
    public static void main(String[] args) {
        //1.创建一个集合
        List<String> list=new ArrayList<>();
​
        //2.添加元素
        list.add("aaa");//这个add方法中不用写索引,这是继承Collection集合的add
        list.add("bbb");//1索引上
        list.add("ccc");
​
        //void add(int index,E element)->在此集合中的指定位置插入指定的元素
        list.add(1,"QQQ");
​
        //E remove(int index)->删除指定索引处的元素,返回被删除的元素(E代表元素)
        String remove=list.remove(0);
        System.out.println(remove);
​
        //3.打印集合
        System.out.println(list);
         /*运行结果为:aaa
                    [QQQ, bbb, ccc]*/
    }
}
​

c.E set(int index,E element)->修改指定索引处的元素,返回被修改的元素

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
​
public class A01_ListDemo1 {
    public static void main(String[] args) {
        //1.创建一个集合
        List<String> list=new ArrayList<>();
​
        //2.添加元素
        list.add("aaa");//这个add方法中不用写索引,这是继承Collection集合的add
        list.add("bbb");//1索引上
        list.add("ccc");
​
        //E set(int index,E element)->修改指定索引处的元素,返回被修改的元素
        String result=list.set(0,"QQQ");
        System.out.println(result);//运行结果为aaa
​
        //3.打印集合
        System.out.println(list);//运行结果为[QQQ, bbb, ccc]
​
    }
}
​

d.E get(int index)->返回指定索引上的元素

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
​
public class A01_ListDemo1 {
    public static void main(String[] args) {
        //1.创建一个集合
        List<String> list=new ArrayList<>();
​
        //2.添加元素
        list.add("aaa");//这个add方法中不用写索引,这是继承Collection集合的add
        list.add("bbb");//1索引上
        list.add("ccc");
​
        //E get(int index)->返回指定索引上的元素
        String s=list.get(0);
        System.out.println(s);//运行结果为aaa
​
        //3.打印集合
        System.out.println(list);//运行结果为[aaa, bbb, ccc]
​
    }
}
​

三.List集合的遍历方式:

1.迭代器遍历:

如:

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
​
public class A03_ListDemo3 {
    public static void main(String[] args) {
        //创建集合并添加元素
        List<String> list=new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
​
        //迭代器
        //获取迭代器对象
        Iterator<String> it=list.iterator();
        while (it.hasNext()){
            String s=it.next();
            System.out.println(s);
            /*运行结果为aaa
                      bbb
                      ccc*/
        }
​
    }
}
​

2.列表迭代器遍历:(要用到接口ListIterator,可通过API帮助文档看详解)

如:

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
​
public class A03_ListDemo3 {
    public static void main(String[] args) {
        //创建集合并添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
​
        //列表迭代器遍历
         //获取一个列表迭代器对象,该列表迭代器里面的指针默认指向0索引
        ListIterator<String> it = list.listIterator();
        while (it.hasNext()){
            String s=it.next();
            System.out.println(s);
            /*运行结果为aaa
                      bbb
                      ccc
                      */
        }
    }
}
​

3.增强for遍历:

如:

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
​
public class A03_ListDemo3 {
    public static void main(String[] args) {
        //创建集合并添加元素
        List<String> list=new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
​
        //增强for遍历
        /*下面的变量s其实就是一个第三方的变量而已,
          在循环的过程中依次表示集合中的每一个元素
         */
        for (String s : list) {
            System.out.println(s);
            /*运行结果为aaa
                      bbb
                      ccc*/
        }
    }
}
​
​

4.Lambda表达式遍历:

如:

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
​
public class A03_ListDemo3 {
    public static void main(String[] args) {
        //创建集合并添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
​
        //Lambda表达式
        /*forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素
          并把每一个元素传递给下面的accept方法
          accept方法的形参s,依次表示集合中的每一个元素
         */
        list.forEach(s -> System.out.println(s));
        /*运行结果为aaa
                  bbb
                  ccc*/
    }
}
​

5.普通for循环(因为List集合存在索引):

如:

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
​
public class A03_ListDemo3 {
    public static void main(String[] args) {
        //创建集合并添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
​
        //普通for循环
        //核心:size方法,get方法以及循环,利用索引获取集合中的每一个元素
        for (int i = 0; i < list.size(); i++) {
            //i:依次表示集合中的每一个索引
            String s= list.get(i);
            System.out.println(s);
            /*运行结果为aaa
                      bbb
                      ccc
             */
        }
    }
}
​

四.补充:

package com.itheima.a02myList;
​
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
​
public class A03_ListDemo3 {
    public static void main(String[] args) {
        //创建集合并添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
​
        //列表迭代器遍历
         //获取一个列表迭代器对象,该列表迭代器里面的指针默认指向0索引
​
         //当中额外添加了一个方法:在遍历的过程中,可以添加元素->不能用add即集合添加元素的方法
         //只能用迭代器自身拥有的添加元素的方法->用迭代器调用
        ListIterator<String> it = list.listIterator();
        while (it.hasNext()){
            String s=it.next();
            if("bbb".equals(s)){
                //此时添加qqq
                it.add("qqq");//不能用集合添加即list.add("qqq");
            }
        }
        System.out.println(list);//运行结果为[aaa, bbb, qqq, ccc]
    }
}
​

五.五种遍历方式对比:

  • 30
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值