我有一个字符串列表,每个字符串都代表一个日期。我想将此列表映射到DateTime对象列表中;但是,如果任何字符串无效(引发异常),我想记录一个错误,但不会将它添加到最终列表中。有没有办法同时进行过滤和映射?同时过滤和映射java流
这是我目前有:
List<String> dateStrs = ...;
dateStrs.stream().filter(s -> {
try {
dateTimeFormatter.parseDateTime(s);
return true;
} catch (Exception e) {
log.error("Illegal format");
return false;
}
}.map(s -> {
return dateTimeFormatter.parseDateTime(s);
}.collect(...);
有没有办法做到这一点,这样我就不必parseDateTime两次,每次元素?
谢谢