我在物料清單的對象List<BoM>
的名單我有一個List<BoMLine>
,現在我已經通過減少在一個方法返回一個排序列表BoMLine屬性的一個排序BoM
列表,如何使用java 8中的reduce對列表進行排序?
public static List<BoM> sortBoms() {
List<BoM> sortedBomList = new ArrayList<>();
BoM bomn = new BoM();
sortedBomList.add(bomList.parallelStream().reduce(bomn,
(bom1, bom2) -> sortBoM(bom1, bom2)));
System.out.println(sortedBomList.size());
return sortedBomList;
}
bomList 2是BOM清單和sortBoM方法:
private static BoM sortBoM(BoM bom1, BoM bom2) {
bom2.getLine().stream()
.sorted((l1, l2) -> l1.getLineNum().compareTo(l2.getLineNum()));
bom1 = bom2;
return bom1;
}
物料清單類:
public class BoM implements Domain {
private String BomCode;
private List<BoMLine> line = new ArrayList<BoMLine>();
public String getBomCode() {
return BomCode;
}
public void setBomCode(String bomCode) {
BomCode = bomCode;
}
public List<BoMLine> getLine() {
return line;
}
public void setLine(List<BoMLine> line) {
this.line = line;
}
public void addLine(BoMLine bomLine) {
bomLine.setbOM(this);
line.add(bomLine);
}}
和BoML ine類:
public class BoMLine implements Domain {
private Long lineNum;
private String material;
private BigDecimal Qty;
private BoM bOM;
public Long getLineNum() {
return lineNum;
}
public void setLineNum(Long lineNum) {
this.lineNum = lineNum;
}
public String getMaterial() {
return material;
}
public void setMaterial(String material) {
this.material = material;
}
public BigDecimal getQty() {
return Qty;
}
public void setQty(BigDecimal qty) {
Qty = qty;
}
public BoM getbOM() {
return bOM;
}
public void setbOM(BoM bOM) {
this.bOM = bOM;
}
public String getBoMCode() {
return bOM.getBomCode();
}
@Override
public String toString() {
return "BoMLine [ bOM=" + bOM.getBomCode() + ", lineNum=" + lineNum
+ ", material=" + material + ", Qty=" + Qty + "]";
}}
我必須通過BoMLine lineNum訂購BoM列表。 但它只是返回bomList.Any幫助的一個對象?
你能發表一個輸入和想要的輸出的例子嗎?我不確定我瞭解每個「BoM」應該如何排序。 – Tunaki
編輯帖子,請看看 – Nazila
我還是不明白'BoM'對象應該如何排序。您可以通過行號對'List'進行排序,但這無助於將兩個「BoM」進行比較。 –
Tunaki