Java Streams 方法不影响我的 ArrayList?

标签 java arraylist java-stream

我正在尝试对名为 parts 的 ArrayList 执行以下流操作:

parts
    .stream()
    .map(t -> t.toLowerCase())
    .distinct()
    .sorted()
    .collect(Collectors.toList());

其中 parts 包含这样的字符串:

Adventures
in
Disneyland
Two
blondes
were
going
to
Disneyland
....

除了查看调试器外,部分 根本没有改变。不确定我是否遗漏了流程的某些步骤?

最佳答案

upon looking at the debugger, "parts" isn't changed at all

正确。流不会修改用于创建流的集合的元素。流最终返回一个包含映射项目的 List。只需创建一个变量并将流操作的返回值分配给它:

List<String> modifiedList = parts.stream()
    .map(t -> t.toLowerCase())
    .distinct()
    .sorted()
    .collect(Collectors.toList());

关于Java Streams 方法不影响我的 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54916333/

相关文章:

java - 三维数组的替代方案

c# - 检查 ArrayList C# 中的字符是否存在 - C# (2.0)

Java 8流映射重用分配的变量

java - 如何将字符串映射到 URI?

java - 使用谓词集合过滤集合并符合阈值

java - 如何在桥牌游戏中切换 Card Deck shuffle() 中的牌位置

java - Adempiere - 菜单 - 窗口未显示

java - 从 Java 应用程序中检索 MS Exchange Server 的邮件

java - 如何在 Java 中将字符串发送到 char 数组?

java - 如何根据另一个ArrayList对ArrayList进行排序?