【发布时间】:2015-12-28 20:41:07
【问题描述】:
我有一个List<String> list 并希望按字母顺序获取该列表的第一个和最后一个字符串。我想利用 Java 8 的强大功能和带有收集器的 Streams 来解决这个问题。
这不起作用:
String first = list.stream().collect(Collectors.minBy(String.CASE_INSENSITIVE_ORDER));
它给了我一个编译器错误:
类型不匹配:无法从 Optional 转换为 String
你能解释一下为什么并告诉我做我想做的最好的方法吗?
【问题讨论】:
-
如果您的字符串列表不能包含重复项,您可以改用
TreeSet。 -
顺便说一下你可能会使用
Optional<String> opt = list.stream().min(String.CASE_INSENSITIVE_ORDER);
标签: java string java-8 java-stream