拆分字符串并添加唯一字符串以在 java 中列出

Split string and add unique strings to list in java

我有以下包含单词的字符串列表。

List<String> words = new ArrayList();
words.add("hello, hi, henry");
words.add("hello1, hi1, henry1");
words.add("hello, hi, henry");

如何遍历单词列表,提取以逗号分隔的每个元素并生成一个包含唯一元素的新列表。输出列表应仅包含原始列表中的唯一元素:hello、hi、henry、hello1、hi1、henry1。想知道在 java 8 中是否有更简单的方法使用流来执行此操作。谢谢。

这是一种方法。

  • 流式传输列表。
  • 用逗号分隔每个字符串。
  • 将每个数组平面映射到单个单词流。
  • trim每个字的白色space。
  • 使用 distinct 来忽略重复项。
  • 分配给列表。
List<String> result = words.stream()
                .flatMap(str -> Arrays.stream(str.split(",")))
                .map(String::trim).distinct().toList();

System.out.println(result);

版画

[hello, hi, henry, hello1, hi1, henry1]