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

时间:2018-05-14 14:14:47

标签: java-8 java-stream

考虑以下对象:

class Interval {
   final String name;
   final Date start;
   final Date end;
   final int intervalId;
}

我获得了一个间隔列表。我需要检查它等于给定的地图。 例如:

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


}
  1. 我想使用Java8将间隔列表转换为开始/结束日期的地图,然后与startEndMap进行比较
  2. 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)
    }
    

    怎么做?

    1. 有更好的方法吗?

1 个答案:

答案 0 :(得分:7)

使用toMap收集器:

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