我有 2 个列表,根据参数,我从 2 个列表中的 1 个中删除了一个元素。然后我循环遍历列表以进行额外处理。然而,即使列表丢失了 1 个元素,list.size()
仍然相同,导致 java.lang.IndexOutOfBoundsException
。我能做些什么来解决这个问题吗?
System.out.println(high_list_price.size());
if(first_hit.equals("low")){
high_list_date.remove(high_list_date.size()-1);
high_list_price.remove(0);
high_list_percent.remove(0);
}
if(first_hit.equals("high")){
low_list_date.remove(low_list_date.size()-1);
low_list_price.remove(0);
low_list_percent.remove(0);
}
System.out.println(high_list_price.size());
for(int tt = 0;tt < low_list_date.size();tt++){
System.out.println(low_list_date.get(tt)+"|"+low_list_price.get(tt));
}
for(int ii = 0; ii < high_list_date.size();ii++){
System.out.print(high_list_date.get(ii)+"|");
System.out.println(+high_list_price.get(ii));
}
high_list_price.size() = 51 在 .remove 之前和之后,但 high_list_date.size() 从 51 变为 50,这是为什么?
最佳答案
如果你向后遍历ArrayLists,你可以删除当前元素而不用担心后面会发生什么。
另一种选择是遍历,列出要删除的内容,然后从原始列表中删除这些元素。
关于java - 从列表中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037980/