Как я могу легко удалить дубликаты в связанном списке в Java? - PullRequest
0 голосов
/ 29 мая 2009

Как я могу легко удалить дубликаты в связанном списке в Java?

Ответы [ 5 ]

16 голосов
/ 29 мая 2009

Вместо этого используйте LinkedHashSet , и тогда у вас не будет дубликатов.

9 голосов
/ 29 мая 2009

Я не знаю, требуется ли вам использовать связанный список, но если нет, используйте набор вместо списка (вы пометили вопрос как «лучшие практики»)

3 голосов
/ 29 мая 2009

Легко с точки зрения чего? Если это достаточно короткий список, самое простое решение - сбросить его в набор, а затем обратно в список.

myList = new LinkedList<Whatever>(new HashSet<Whatever>(myList));

Но зачем это? Если вам не нужны дубликаты, вы должны использовать Set; если вам нужен только список, чтобы вы могли хранить элементы в том же порядке, в котором они были вставлены, вы можете использовать LinkedHashSet, чтобы получить лучшее из обоих миров: Set, который повторяется предсказуемо, как LinkedList.

2 голосов
/ 29 мая 2009

Просмотрите их и, если две представляют одну и ту же вещь, удалите одну из них.

Что еще ты хочешь? Хотите совет, как это сделать быстро? Если это так, сохраните узлы в хеш-таблице для удобства поиска при поиске дубликатов.

1 голос
/ 19 марта 2012
import java.util.*;
import java.lang.*;

class Main
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Collection<String> c = new LinkedList<String>();
        c.add("JAR");c.add("BDK");c.add("JDK");c.add("JAR");c.add("WAR");c.add("APK");c.add("BDK");
        c=new HashSet(c);
        c=new ArrayList(c);
        for(String s : c)
        {
            System.out.println(s);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...