我有一個列表,我正在循環它刪除列表中的項目,如果有匹配。 如果列表中的項目被刪除,我正在使用i = -1。但它從頭再次循環。有一個更好的方法嗎?更好的方式來遍歷列表<String>並刪除項目
private List<String> populateList(List<String> listVar) {
List<String> list = new ArrayList<String>();
list.add("2015-01-13 09:30:00");
list.add("2015-01-13 06:22:12");
list.add("2015-01-12 05:45:10");
list.add("2015-01-12 01:52:40");
list.add("2015-01-12 02:23:45");
return list;
}
private void removeItems() {
List<String> list = new ArrayList<String>();
list = populateList(list);
System.out.println("List before modification : "+list);
for (int i = 0; i < list.size(); i++) {
String dateNoTime = list.get(i).split(" ")[0];
System.out.println(" Going over : "+list.get(i));
if(!dateNoTime.equalsIgnoreCase("2015-01-13")) {
System.out.println(" Removing : "+list.get(i));
list.remove(i);
i = -1; //This is making the loop start from scratch. Is there a better way?
}
}
System.out.println("List after modification: "+list+"\n\n");
}
我錯過了什麼?爲什麼你不能刪除部件'我= -1'? – SOfanatic 2015-01-15 17:56:22
應該是併發修改異常!改用Iterator。 – 2015-01-15 17:57:01
只是反向循環。 (從結尾到開始) – njzk2 2015-01-15 17:57:20