You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java Stream打印列表中除firstName为Avijit外的所有对象

使用Java Stream过滤并打印排除指定firstName的对象列表

没问题,这事儿用Java Stream的filter操作就能轻松搞定,我给你整理好完整的实现方案和细节说明:

首先,你的代码里缺少User实体类的定义,咱们先补上这个类(需要包含字段、构造方法,以及用来打印对象的toString()方法):

public class User {
    private int id;
    private String firstName;
    private String lastName;
    private String password;

    // 构造方法
    public User(int id, String firstName, String lastName, String password) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.password = password;
    }

    // 获取firstName的getter方法(Stream过滤需要用到)
    public String getFirstName() {
        return firstName;
    }

    // 重写toString,方便打印对象内容
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", firstName='" + firstName + '\'' +
                ", lastName='" + lastName + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

接下来修改你的StreamDemo类,在main方法里添加Stream的过滤和打印逻辑:

import java.util.ArrayList;
import java.util.List;

public class StreamDemo {
    public static void main(String[] args) {
        List<User> name = new ArrayList<>();
        name.add(new User(1,"Avijit","Barua","aavi1234"));
        name.add(new User(2,"Mezanul","Haque","mezan1234"));
        name.add(new User(3,"Subrata","Nath","subrata1234"));
        name.add(new User(4,"Raman","Karmakar","raman1234"));
        name.add(new User(5,"Mowdud","Ahmed","mowdud1234"));

        // 使用Stream过滤并打印排除firstName为"Avijit"的对象
        name.stream()
            // 过滤条件:排除firstName等于"Avijit"的用户
            .filter(user -> !"Avijit".equals(user.getFirstName()))
            // 遍历打印每个符合条件的对象
            .forEach(System.out::println);
    }
}

关键步骤说明:

  • stream():把List转换成Stream流,开启流式操作。
  • filter():传入一个Lambda表达式作为过滤条件,用!"Avijit".equals(user.getFirstName())来排除目标用户——这里推荐用字符串的equals()方法而不是==,避免因字符串引用不同导致的判断错误。
  • forEach():遍历过滤后的Stream,用方法引用System.out::println打印每个对象的内容(这依赖于我们之前重写的toString()方法)。

运行这段代码后,你就会看到除了firstName为"Avijit"的User之外,其他所有对象都被打印出来啦。

内容的提问来源于stack exchange,提问作者Avijit Barua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:17:32