使用迭代器删除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