删除java arraylist中的重复项

LPl*_*ava 1 java iterator arraylist

谢谢Marko.我重写了代码.尽量使它变得简单.这次它真的可以编译.但它只能删除重复的项目彼此相邻.例如,如果我输入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) + ", ");
}

}
Run Code Online (Sandbox Code Playgroud)

Rid*_*lly 6

要回答"删除java arraylist中的重复项"这一问题:

只需将所有元素都放入其中即可Set.

-要么-

迭代您的original列表并将元素添加到a 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");
Run Code Online (Sandbox Code Playgroud)