删除ArrayList中的重复元素而不使用HashSet

App*_*sei 5 java algorithm arraylist

我的逻辑搞砸了.我只是试图找到一种方法来删除ArrayList中的重复项而不使用HashSet.

public static void main(String[] args) {
    ArrayList<String> wordDulicate = new ArrayList<String>();
    wordDulicate.add("Tom");
    wordDulicate.add("Jones");
    wordDulicate.add("Sam");
    wordDulicate.add("Jamie");
    wordDulicate.add("Robie");
    wordDulicate.add("Helen");
    wordDulicate.add("Tom");
    wordDulicate.add("Troy");
    wordDulicate.add("Mika");
    wordDulicate.add("Tom");

    for (String dupWord : wordDulicate) {
        if (wordDulicate.equals(dupWord))
            System.out.println(wordDulicate.get(dupWord));
    }
}
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 9

您可以创建另一个列表,并向其中添加项目,跳过重复项: -

ArrayList<String> wordDulicate = new ArrayList<String>();
ArrayList<String> tempList= new ArrayList<String>();

wordDulicate.add("Tom");
wordDulicate.add("Jones");
wordDulicate.add("Sam");


for (String dupWord : wordDulicate) {
    if (!tempList.contains(dupWord)) {
        tempList.add(dupWord);
    }
}
Run Code Online (Sandbox Code Playgroud)


dan*_*dan 6

您应该对列表进行排序并删除与前一个相同的元素。


kos*_*osa 6

此方法需要另一个列表:

       ArrayList<String> wordDulicate = new ArrayList<String>();

        wordDulicate.add("Tom");
        wordDulicate.add("Jones");
        wordDulicate.add("Sam");
        wordDulicate.add("Jamie");
        wordDulicate.add("Robie");
        wordDulicate.add("Helen");
        wordDulicate.add("Tom");
        wordDulicate.add("Troy");
        wordDulicate.add("Mika");
        wordDulicate.add("Tom");

        ArrayList<String> nonDupList = new ArrayList<String>();

        Iterator<String> dupIter = wordDulicate.iterator();
        while(dupIter.hasNext())
        {
        String dupWord = dupIter.next();
        if(nonDupList.contains(dupWord))
        {
            dupIter.remove();
        }else
        {
            nonDupList.add(dupWord);
        }
        }
      System.out.println(nonDupList);
Run Code Online (Sandbox Code Playgroud)

输出:

[Tom, Jones, Sam, Jamie, Robie, Helen, Troy, Mika]
Run Code Online (Sandbox Code Playgroud)

  • 你为什么要从原始列表中删除? (3认同)