Java面试题:循环删除 List 中的元素

简介: Java面试题:循环删除 List 中的元素

目录

一、需求

删除list中的元素 Jack

模板代码

package com.example;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Demo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>(Arrays.asList("Tom", "Jack", "Steve"));
        System.out.println(list);
        // [Tom, Jack, Steve]
        // 删除元素操作
        System.out.println(list);
        // [Tom, Steve]
    }
}

二、循环删除元素

使用for循环倒序删除

int length = list.size();
// 下标范围 [0, length - 1]
for (int i = length - 1; i >= 0; i--) {
    System.out.println(i);
    if ("Jack".equals(list.get(i))) {
        list.remove(i);
    }
}

三、先查找,再删除

开发中,避免在循环中删除元素,采用的是先查找,再删除,逻辑更清晰

// 先查找,再删除
int index = list.indexOf("Jack");
if (index > -1) {
    list.remove(index);
}

四、使用removeIf

JDK1.8可以使用removeIf

// @since 1.8
list.removeIf(x -> "Jack".equals(x));

五、使用Stream.filter

// @since 1.8
list = list.stream()
        .filter(x -> !"Jack".equals(x))
        .collect(Collectors.toList());

参考

带了一个 3 年的开发,不会循环删除 List 中的元素,心态崩了


相关文章
|
2天前
|
Java
Java快速入门之判断与循环
本文介绍了编程中的流程控制语句,主要包括顺序结构、判断结构(if语句和switch语句)以及循环结构(for、while和do...while)。通过这些语句可以精确控制程序的执行流程。if语句有三种格式,分别用于简单条件判断、二选一判断和多条件判断。switch语句适用于有限个离散值的选择判断,而循环结构则用于重复执行某段代码,其中for循环适合已知次数的情况,while循环适合未知次数但有明确结束条件的情况,do...while则是先执行后判断。文中还提供了多个示例和练习,帮助读者理解并掌握这些重要的编程概念。
|
5天前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
20 4
|
5天前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
5天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
5天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
5天前
|
SQL 监控 druid
Java Druid 面试题
Java Druid 连接池相关基础面试题
|
5天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
1月前
|
存储 缓存 安全
只会“有序无序”?面试官嫌弃的List、Set、Map回答!
小米,一位热衷于技术分享的程序员,通过与朋友小林的对话,详细解析了Java面试中常见的List、Set、Map三者之间的区别,不仅涵盖了它们的基本特性,还深入探讨了各自的实现原理及应用场景,帮助面试者更好地准备相关问题。
60 20
用好PDCA循环法,轻松slay面试
如何在面试中完美发挥?可以借鉴PDCA循环法。P(Plan):规划面试策略和简历;D(Do):准备面试技巧、刷题等;C(Check):通过模拟面试提升表达能力;A(Act):复盘面试问题,查漏补缺,避免重复错误。这一科学方法有助于系统性地提升面试表现。
|
26天前
|
Java
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
今日分享的主题是如何区分&和&&的区别,提高自身面试的能力。主要分为以下四部分。 1、自我面试经历 2、&amp和&amp&amp的不同之处 3、&对&&的不同用回答逻辑解释 4、彩蛋