【数据结构】List接口

1、List系列集合的特点

      List系列集合的特点:元素有序,可重复,有索引

2、List接口的常用方法 

这些方法都比较简单,其中要注意的是remove方法

为什么说它要注意呢?比如我们现在用ArrayList实现类实现了List接口,创建了一个Integer集合list,里面存储了三个元素1,2,3 ,我希望删除元素为1的这个值,如果用remove(1)方法,我们可以发现这里的1指的并不是元素值,而是集合中的索引值,也就是说实际删除的是2这个元素。

这主要是因为发生方法的重载的时候,删除时它优先调用形参与实参类型一致的那个方法,数字1是整型,所以这里的1指的是删除索引值。如果要删除元素值,这里要进行手动的装箱操作:将数字1变为Integer类型。具体看下面的代码:

//创建集合并添加元素
List<Integer> list = new ArrayList<>();
//向集合中添加元素
list.add(1);
list.add(2);
list.add(3);
//删除索引为1的元素
//list.remove(1);
//删除元素为1的元素:手动装箱:将元素值1转换为Integer类型
Integer i = Integer.valueOf(1);
list.remove(i);

3、List接口的5种遍历方式

因为Collection接口时List接口的“祖宗”类,因此Collection接口中写过的3种遍历方式对List都适用,这里我们主要实现一下List中的其他两种遍历方式。

Collection的3种遍历方式

(1)普通for循环:因为List是有索引的

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

 (2)List独有的列表迭代器

       其实ListIterator是Itertor的子接口,使用方式是相同的,遵循Iterator的所有原则: 包括在迭代器遍历的时候不能使用集合的方式添加或删除元素,但是可以用Iterator对象删除元素 ,相较于Iterator,ListIterator一个方法:可以在迭代器遍历的时候使用ListIterator添加元素。

  
        ListIterator<String> listIt = list.listIterator();
        while (listIt.hasNext()){
            String str = listIt.next();
            if(str.equals("aaa")){
                listIt.add("qq");//迭代器的方式添加元素
            }
        }
        System.out.println(list);

关于List接口的学习就到这。本人菜鸟一枚,主要记录一下自己这个阶段的的学习内容,有什么不足的地方希望大家指出呀~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值