我尝试了解新的Java 8 Streams,并尝试了数天将Java 8 Streams中的嵌套foreach循环转换为集合。
是否可以在Java 8 Streams中重构以下包含if条件的嵌套foreach循环?
如果可以,它会是什么样子。
非常感谢您的帮助。
敬礼
是否可以在Java 8 Streams中重构以下包含if条件的嵌套foreach循环?
如果可以,它会是什么样子。
ArrayList<ClassInq> Inq = new ArrayList<>();
TreeMap<String, SalesQuot> Quotations = new TreeMap<>();
ArrayList<ClassInq> tempInqAndQuot = new ArrayList<>();
ArrayList<SalesQuot> tempQuotPos = new ArrayList<>();
for(ClassInq simInq : this.Inq) {
if(!simInq.isClosed() && !simInq.isDenied()) {
for(Map.Entry<String, SalesQuot> Quot: Quotations.entrySet()) {
SalesQuot sapQuot = Quot.getValue();
if(sapQuot.getInquiryDocumentNumber().compareTo(simInq.getSapInquiryNumber()) == 0) {
simInq.setSAPQuotationNumber(sapQuot.getQuotationDocumentNumber());
tempInqAndQuot.add(simInq);
for(Map.Entry<String, SalesQuotPosition> quotp : sapQuot.getPosition().entrySet()) {
tempQuotPos.add(quotp.getValue());
}
}
}
}
}
非常感谢您的帮助。
敬礼
tempInqAndQuot.add(simInq)
,所以你正在将同一对象多次添加到同一集合中。 - ErantempQuotPos
应该定义为ArrayList<SalesQuotPosition>
吗? - Sean Van Gorder