我有一个随机单词列表,我想过滤所有相同长度或相同的第一个字母的单词?
如何使用java 8流在列表中相互检查元素?
要检索以特定字母/单词开头的字符串列表:
List<String> resultSet = myList.stream()
.filter(x -> x.startsWith("a"))
.collect(Collectors.toList());
要保持所有具有相同长度的字符串的记录,请考虑使用groupingBy
收集器。
Map<Integer, List<String>> resultSet = myList.stream()
.collect(Collectors.groupingBy(String::length));
如果您确切知道您感兴趣的琴弦的长度,那么您可以:
List<String> resultSet = myList.stream()
.filter(x -> x.length() == 5)
.collect(Collectors.toList());
此外,您可以组合两个过滤器操作来维护具有特定长度的字符串列表或具有特定字/字母的开头:
List<String> resultSet = myList.stream()
.filter(x -> x.startsWith("a") ||
x.length() == 5)
.collect(Collectors.toList());