List接口

​ List接口是collection接口的子接口,是单列有序集合

1. List接口的特点
  • 有序的
  • 可重复
  • 具有索引
2. List集合的常用方法
// 1. 在指定的下标位插入元素
list.add(5, 100);

// 3. remove(int index): 移除指定下标位的元素
list.remove(3);

 // 这里,由于存在了基本数据类型int和包装类型Integer的重载方法,因此,如果需要按照元素删除,需要进行手动装箱
list.remove(Integer.valueOf(100));

// 4. 将指定下标位的元素,修改成指定的元素
list.set(0, 100);

// *5. 【了解】 替换
// 逻辑:将集合中的每一个元素,都带入到UnaryOperator接口的方法中,用返回值替换原来的元素
list.replaceAll(ele -> ele * 10);
list.replaceAll(ele -> ele % 2 != 0 ? ele * 10 : ele);

// 6. 查: 获取指定下标位的元素
Integer element = list.get(0);
System.out.println(element);

// 8. 获取某一个元素出现的下标
System.out.println(list.indexOf(30));
// 9. 获取某一个元素最后一次出现的下标
System.out.println(list.lastIndexOf(30));

// 7. 截取一个子集合,[fromIndex, toIndex)
List<Integer> result = list.subList(3, 5);


// 2. 在指定的下标位插入多个元素
List<Integer> tmp = new ArrayList<>();
tmp.add(10);
tmp.add(20);
tmp.add(30);
list.addAll(3, tmp);
3. ListIterator 以及List集合的遍历方式
  • 通过ListIteration中的add,set,remove可以实现在遍历的同时对集合增删改的功能
  • ListIterator可以实现结合的倒序遍历
// ListIterator
// List集合的遍历方式:
// 1. 增强for循环
// 2. forEach
// 3. 下标遍历
// 4. Iterator迭代器
// 5. ListIterator
public class ListIteratorUsage {
    public static void main(String[] args) {
        // 准备工作:准备一个集合
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            list.add(i);
        }

        // ListIterator:
        // 是在List接口中特有的迭代器,是继承自 Iterator 的
        // 1. 可以使用 hasPrevious和 previous 方法,实现倒序的迭代
        // 2. 使用 add、set、remove 实现在迭代的同时,修改集合中的数据
        ListIterator<Integer> iterator = list.listIterator();

        while (iterator.hasNext()) {
            Integer ele = iterator.next();
            // 在迭代的过程中,修改当前指向的元素
            // iterator.set(ele * 10);

            if (ele.equals(5)) {
                // 在迭代的过程中,添加元素
                // iterator.add(11);
                // 在迭代的过程中,删除元素
                iterator.remove();
            }
        }

        System.out.println(list);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值