gpt4 book ai didi

java - 删除数组列表中的重复项

转载 作者:行者123 更新时间:2023-11-30 04:26:00 26 4
gpt4 key购买 nike

只是免责声明:我第二次重复了我的 java mod,所以我的问题可能有点简单,希望我听起来不会太愚蠢。

Write a method removeDuplicates that takes as a parameter a sorted ArrayList of Strings and that eliminates any duplicates from the list. For example, suppose that a variable called list contains the following values: {"be", "be", "is", "not", "or", "question", "that",
"the", "to", "to"}
After calling removeDuplicates(list); the list should store the following values: {"be", "is", "not", "or", "question", "that", "the", "to"}

Because the values will be sorted, all of the duplicates will be grouped together.

我的尝试:

public static void removeDuplicates(ArrayList <String>a){
for(int i=0;i<a.size();i++){
String word=a.get(i);
String word2=a.get(i+1);

if(word.equals(word2)){
a.remove(word);

}
else{
System.out.print(word);

}
}
}

问题是当我用以下方式调用它时:

["duplicate", "duplicate", "duplicate", "duplicate", "duplicate"]

它返回indexoutofbound。我知道它与 i=i-1 有关 remove 方法的引用。尝试将其插入各处,但不起作用。但我很困惑,因为这适用于我的代码。当我用以下方式调用它时:

["be", "be", "is", "not", "or", "question", "that", "the", "to", "to"]

它有效。

最佳答案

您的实现存在缺陷。

String word=a.get(i);
String word2=a.get(i+1);

当你到达最后一个元素时,将给出越界。

其次,当您直接从 arraylist 迭代时,您将删除元素,这是行不通的。你改为迭代器。

关于java - 删除数组列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15859353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com