在第一個串列中,我有3個計劃。在第二個串列中,我有3個Tarifs。我應該檢查每一個關稅,并將其從計劃中洗掉if type not equals "L" 。在我的例子中,我有2個關稅,我需要將其洗掉。但問題是,當第一個計劃被洗掉后,系統將不會轉到其他關稅并退出for loop。如何解決這個問題?
List<Plan> plan2 = new ArrayList< Plan> ();
plan2.addAll(tplan2)。
for (int i = 0; i < plan2.size(); i ) {
List<Tarifs> tariff = new ArrayList<Tarifs> ()。
tariff.addAll(plan2.get(i).gettariff())。
for (int j = 0; j < tariff.size(); j ) {
Tarifs tarifas = tariff.get(j);
Predicate<Tarifs> condition = Tarifs -> !Tarifs.getType().equals("L"/span>)。
plan2.get(i).getTariff().removeIf(condition)。
}
if(plan2.get(i).gettariff().isEmpty()) {
plan2.removeIf(condition -> condition.getTariff().isEmpty())。
}
uj5u.com熱心網友回復:
removeIf已經為你做了回圈。
假設你有一個計劃的串列,例如(a, b, c),
而每個計劃都有一個關稅串列,例如(a有1,2,3)
你需要做的是,讓你的計劃與其他計劃相比,更有吸引力。
你需要做的是:
plans.forEach(plan -> {
plan.getTariff().removeIf(condition);
});
uj5u.com熱心網友回復:
我認為最簡單的方法是將removeIf移到回圈之外:
for(int i = 0; i < plan2. size(); i ) {
//span>也許可以從關稅中移除東西...。
}
plan2.removeIf(condition -> condition.getTariff().isEmpty() )。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312342.html
標籤:
