3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
為了使您的替換功能以短路方式工作,請(qǐng)使用ListIterator:
ListIterator<Phase> iterator = phaseList.listIterator();
while(iterator.hasNext()){
Phase phase = iterator.next();
if(phase.getId().toString().equalsIgnoreCase(idPhaseToBeReplaced)){
iterator.set(replacementPhase);
break;
}
}
如果 id 不唯一,只需刪除break. 或者使用List::replaceAll.

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
您似乎正在尋找List#replaceAll
諸如:
sequence.getPhasesList() ????????.replaceAll(phase?->?phase.getId().toString() ????????????????.equalsIgnoreCase(idPhaseToBeReplaced)???replacementPhase?:?phase);

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果保持列表排序,則可以使用二分搜索找到該項(xiàng)目,這比迭代列表更快。
Collections.binarySearch
如果您需要按插入順序?qū)ζ溥M(jìn)行排序,請(qǐng)使用LinkedHashMap
添加回答
舉報(bào)