List<Element> results = list.stream().collect( ArrayList::new,
(List<Element> rlist, Element t)->{
for(Element e: list.stream().filter*1;
この for 文は、以下のように書ける。
===============
List<Element> results = list.stream().collect(ArrayList::new, (List<Element> rlist, Element t)->{
list.stream().filter*2;
================
もう、一見して何してるんだって理解するのに慣れるのに時間かかりそうだけど、
これが一目で解るのは病気かも。。。
*1:e)->{ return !e.equals(t);}).collect(Collectors.toList())){
if (t.start_date.compareTo(e.end_date) <= 0 && t.end_date.compareTo(e.start_date) >= 0){
rlist.add(e);
}
}
},
(t, u)->{}
).stream().distinct().collect(Collectors.toList(
*2:e)->{ return !e.equals(t);}).forEach((e)->{
if (t.start_date.compareTo(e.end_date) <= 0 && t.end_date.compareTo(e.start_date) >= 0){
rlist.add(e);
}
});
}, (t, u)->{ }
).stream().distinct().collect(Collectors.toList(