拆分字符串并添加唯一字符串以在 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]
我有以下包含单词的字符串列表。
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]