利用期間重複の詳細リストを求める(2)-2

先日書いた 利用期間重複の詳細リストを求める(2) は、よくよく考えたら、、、

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(