Java 关于简化与循环迭代相关的代码的问题

Java 关于简化与循环迭代相关的代码的问题,java,coding-style,Java,Coding Style,我有一个关于编码的问题。我得到一个任务,它是迭代一个元素列表来执行重复数据消除 元素列表按时间排序,并划分为子时间窗口。在每个子时间窗口中,我需要根据一些业务逻辑提取重复数据消除的元素。根据业务逻辑,只有在迭代子时间窗口中的所有元素时,才知道子时间窗口中已消除重复数据的元素。我的问题是如何简化此任务的编码 我能想到的最好的方法就是下面的一些伪代码 List<Element> deduplicated = new List(); Element subWindowPeekSignal

我有一个关于编码的问题。我得到一个任务,它是迭代一个元素列表来执行重复数据消除

元素列表按时间排序,并划分为子时间窗口。在每个子时间窗口中,我需要根据一些业务逻辑提取重复数据消除的元素。根据业务逻辑,只有在迭代子时间窗口中的所有元素时,才知道子时间窗口中已消除重复数据的元素。我的问题是如何简化此任务的编码

我能想到的最好的方法就是下面的一些伪代码

List<Element> deduplicated = new List();
Element subWindowPeekSignal = null;
Time subWindowEndTime = null;

elements.foreach(e -> {
      if (subWindowPeekElement != null
           && subWindowEndTime != null
           && isElementInTimeWindow(e, subWindowEndTime) {
         if (isIteratedElementHigherPriority(subWindowPeekElement, e)) {
             subWindowPeekElement = e;
         }
      } else {
         if (subWindowPeekElement != null) {
            deduplicated.add(subWindowPeekElement);
         }
         subWindowPeekElement = e;
         subWindowEndTime = getTime(e);
      }
  });

  //the ugly statement outside of loop
  deduplicated.add(subWindowPeekElement);
List deduplicated=new List();
元素子窗口信号=空;
Time subWindowEndTime=null;
元素。foreach(e->{
if(子窗口元素!=null
&&subWindowEndTime!=null
&&IsElementTimeWindow(e,subWindowEndTime){
if(IsiterateMelementHigherPriority(子窗口元素,e)){
子元素=e;
}
}否则{
if(子窗口元素!=null){
已消除重复。添加(子窗口元素);
}
子元素=e;
subWindowEndTime=getTime(e);
}
});
//循环外的丑陋陈述
已消除重复。添加(子窗口元素);
具体来说,如何避免循环外的最后一条语句?是否可以完成在循环内收集所有重复数据消除元素的任务,或者使用java流

非常感谢,,
六月

这是我团队每次讨论的最佳解决方案。

这是我团队每次讨论的最佳解决方案