如何使用Java-8将对象转换为地图

Tan*_*ant 1 java-8 java-stream

考虑以下对象:

class Interval {
   final String name;
   final Date start;
   final Date end;
   final int intervalId;
}
Run Code Online (Sandbox Code Playgroud)

我收到了一份间隔清单.我需要检查它等于给定的地图.例如:

boolean checkEqual(List<Interval> intervals, Map<Date, Date> startEnd) {


}
Run Code Online (Sandbox Code Playgroud)
  1. 我想使用Java8将间隔列表转换为开始/结束日期的映射,然后与startEndMap进行比较

boolean checkEqual(List<Interval> intervals, Map<Date, Date> startEnd) {
       Map<Date, Date> map = intervals.streams.filter ?? is there a way to do it ?
       return map.equals(startEnd)
}
Run Code Online (Sandbox Code Playgroud)

怎么做 ?

  1. 有没有更好的办法 ?

Ous*_* D. 7

使用toMap收藏家:

Map<Date, Date> result = intervals.stream()
             .collect(Collectors.toMap(Interval::getStartDate, 
                             Interval::getEndDate));
Run Code Online (Sandbox Code Playgroud)