java - 拆分字符串行列表并将单词添加到新列表中

标签 java list algorithm split java-stream

我对下面的代码不太满意,但我不知道如何以更有效的方式实现它。

    List<String> words = new ArrayList<String>();
    for (String line : newList) {
        String[] lineArray = line.split(" ");
        for (String l : lineArray) {
            words.add(l);
        }
    }

最佳答案

一种优雅的方式如下:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] argv) throws Exception {
        List<String> newList = List.of("Amitabh Bachchan", "James Bond", "Kishore Kumar", "Arvind Kumar Avinash");
        List<String> words = newList.stream().flatMap(s -> Arrays.stream(s.split(" "))).collect(Collectors.toList());
        System.out.println(words);
    }
}

输出:

[Amitabh, Bachchan, James, Bond, Kishore, Kumar, Arvind, Kumar, Avinash]

关于java - 拆分字符串行列表并将单词添加到新列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60687563/

相关文章:

python - 将时间戳列表转换为可读格式(需要快速方法)

c# - 排序算法在处理较大的数据集时会导致堆栈溢出?

algorithm - 比较分水岭和抓取

javascript - HTML5 File.slice 方法实际上在做什么?

java - 如何在 IceWM 中启动时运行 java GUI?

java - 客户端策略文件的 RMI 使用

python - 为什么允许列表自行追加?

java - 在 Android 应用程序的同一 Activity 中保存多个推送通知

javascript - 使用 java itextpdf 从 pdf 加载 javascript

生成列表所有可能排列的算法?