【发布时间】:2015-12-12 10:19:04
【问题描述】:
for (int i=0; i<name.size(); i++)
{
for (int j = 1; j<name.size(); j++)
if (name.get(i).equals(name.get(j)))
{
name.remove(i);
name.remove(j);
j=j-1;
}
}
最初,name 是具有 400 个元素的 ArrayList。我正在尝试删除重复的元素。我不知道为什么我的编译器一直给我
java.lang.IndexOutOfBoundsException:索引:1,大小:1
请注意,我正在尝试删除重复的对。 arraylist 中只能有两个相同的元素。 3个或更多是不可能的。
【问题讨论】:
-
不确定这是否真的是问题所在,但您的内部
for循环缺少大括号。 -
我认为只要去掉
name.remove(i);这一行就可以了。您不需要删除重复的两次。 -
我正在尝试删除重复的对。
-
那么您需要一种完全不同的方法。如果列表包含三个相同的项目,答案应该是什么?
-
抱歉这个令人困惑的问题。 arraylist 仅携带重复的对或唯一元素。没有 3 个或更多项目是相同的。