谢谢马可。我重写代码。尽量让它简单。这次真的可以编译了。但它只能删除彼此相邻的重复项目。例如,如果我输入 1 2 3 3 4 4 5 1 -- 输出是 1 2 3 4 5 1。最后它无法提取重复项。 (顺便说一句:这个网站是新手,如果有任何显示困惑,我深表歉意)
这是新代码:
import java.util.*;
public class SetListDemo{
public static void main(String[] args){
SetListType newList = new SetListType();
Scanner keyboard = new Scanner(System.in);
System.out.println( "Enter a series of items: ");
String input = keyboard.nextLine();
String[] original = input.split(" ");
for (String s : original)
newList.insert(s);
List<String> finalList = new ArrayList(Arrays.asList(original)) ;
Iterator<String> setIterator = finalList.iterator();
String position = null;
while(setIterator.hasNext()){
String secondItem = setIterator.next();
if(secondItem.equals(position)){
setIterator.remove();
}
position = secondItem;
}
System.out.println("\nHere is the set list:");
displayList(finalList);
System.out.println("\n");
}
public static void displayList(List list){
for(int index = 0; index <list.size(); index++)
System.out.print(list.get(index) + ", ");
}
}
最佳答案
回答“delete duplicates in java arraylist”这个问题:
只需将所有元素放入 Set
即可。
-或-
迭代您的原始
列表并将元素添加到List
,但在添加它们之前,请检查List#contains()
是否元素已经存在。
编辑:试试这个:
String[] original = input.split(" ");
List<String> finalList = new ArrayList<String>();
for (String s : original) {
if (!finalList.contains(s)) {
finalList.add(s);
}
}
System.out.println("\nHere is the set list:");
displayList(finalList);
System.out.println("\n");
关于java - 删除java arraylist中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12196762/