List集合以及遍历方法

List同样是一个接口,继承于Collection

public static void main(String[] args) {
        /*
        List独有的方法
        void add(int index,E element)       在集合的指定位置插入元素
        E remove(int index)                 删除指定索引的元素,并且返回被删除的元素
        E set(int index,E element)          修改指定索引的元素,返回被修改的元素
        E get(int index)                    返回指定索引的元素
         */

        //1、创建一个集合,List是一个接口,不可以创建接口的对象,只能创建接口的实现类对象(实现了这个接口的类,用这个类创建对象)
        List<String> list=new ArrayList<>();

        //2、添加元素
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //在指定的位置添加元素,原来索引处的元素会依次往后移
        //List删除元素的两个方法---->1、直接删除元素   2、通过索引删除元素
        list.add(1,"QQQ");
        System.out.println(list);

        //在调用方法的时候,如果方法出现了重载现象,会优先调用实参和形参相同的那个方法
        /*
        remove(object o)----->object是一个对象,删除数字1时,先将其改为包装类
        remove(int index)
         */
        System.out.println(list.remove(0));
    }

list集合多出了索引,可以根据索引进行增删改查。

需要注意的,重载后的方法会优先调用实参和形参相同类型的方法。

remove(1)删除的是索引为1的元素。如果想删除1元素,需要调用remove(object o),设置1元素的包装类再进行删除

Integer i=Integer.valueOf(1);
list.remove(i);

 

List的五种遍历方式

 1、迭代器

2、列表迭代器

3、增强for

4、Lambda表达式

5、普通for循环

public static void main(String[] args) {
        /*
        五种遍历方法
        1、迭代器
        2、列表迭代器
        3、增强for
        4、Lambda表达式
        5、普通for循环
         */

        //1、创建一个集合,List是一个接口,不可以创建接口的对象,只能创建接口的实现类对象(实现了这个接口的类,用这个类创建对象)
        List<String> list = new ArrayList<>();

        //2、添加元素
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //迭代器
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            String result = it.next();
            System.out.println(result);
        }

        //增强for
        //s只是一个第三方的变量
        for (String s : list) {
            System.out.println(s);
        }

        //Lambda表达式
        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });

        list.forEach((s -> System.out.println(s)));

        //普通for
        for (int i = 0; i < list.size(); i++) {
            String str=list.get(i);
            System.out.println(str);
        }

        //列表迭代器
        //获取一个列表迭代器对象,默认的指向也是索引为0的位置
        //额外多了一个方法,在遍历的过程中可以添加元素
        ListIterator<String> listIterator=list.listIterator();
        while(listIterator.hasNext()){
            String result=listIterator.next();
            if("bbb".equals(result)){
                //只能用迭代器的方法添加,如果用list集合的方法进行添加会并发异常
                listIterator.add("QQQ");
            }
            System.out.println(result);
        }
    }

特别的:列表迭代器和普通的迭代器相似,但是多出了hasPrevious()和previous()方法,指针可以回调。同时多出了.add()方法,在遍历的过程中可以新增元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值