使用迭代器刪除list元素


當我們使用增強for循環刪除元素的時候,會報這樣兩種異常:

1.
********************************
異常類型: class org.apache.catalina.connector.ClientAbortException
異常信息: java.io.IOException: 你的主機中的軟件中止了一個已建立的連接。
********************************

2.
********************************
異常類型: class java.util.ConcurrentModificationException
異常信息: null
********************************

這兩種異常具體是什么去網上搜。
解決方法:

不要用增強for的remove方法去刪除list的元素,而是使用迭代器里的remove方法去刪除list的元素。


eg:
// QIP站碼
if (stationCode.equals("QIP")) {
List<MonitorDevice> monitorDevice = jsonConvertQIP(monitorDevices);
List<MonitorDevice> monitorDevices1 = booleanExchange(monitorDevice,"JZQT");
Iterator<MonitorDevice> it = monitorDevices1.iterator();
while (it.hasNext()) {
MonitorDevice monitorDevice2 = it.next();
if(monitorDevice2.getDeviceUnique().equals("P_QIP_AHU_D3AHU05") || monitorDevice2.getDeviceUnique().equals("P_QIP_PAU_D1YSSTTSET") || monitorDevice2.getDeviceUnique().equals("P_QIP_AHU_D3AHU01") || monitorDevice2.getDeviceUnique().equals("P_QIP_B1PAU_DPAU")){
it.remove();
}
}
return monitorDevices1;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM