有没有一种方法可以在流式收集数据的同时将字符串列表(List of Strings)转换成日期列表(List of Dates)?
我的尝试:
我定义了一个SimpleDateFormat并尝试在以下代码中使用它,但我无法使其完全运行。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.mm.yyyy");
ArrayList<Date> dateList = stringList.stream()
.filter(s -> s.startsWith("<"))
.collect(Collectors.toList());
解决方案
根据使用 map 的提示,我现在得到了一个可行的解决方案,看起来像这样。当然,任何对此进行优化的建议都是欢迎的!
int year = 2016;
int month = 2;
int day = 15;
final List<LocalDate> dateListEarlier = dateList.stream()
.filter(s -> s.startsWith("<"))
.map(s -> s.substring(1).trim())
.map(s -> LocalDate.parse(s, formatter))
.sorted()
.filter(d -> d.isAfter(LocalDate.of(year, month, day)))
.collect(Collectors.toList());
simpleDateFormat
实际转换您的字符串可能是个好主意。您可以过滤一些内容,就这样。这里有几个关于流中类型转换的示例。 - Tommap
是你要找的。 - Tobb