Java - tablice - wyeliminuj wszystkie powtórzenia elementów tablicy

0

No właśnie. Jak wyeliminować wszystkie powtórzenia elementów tablicy?

Mój tok myślenia, czy jest poprawny?

Tworzymy zmienną do zliczania powtórzonych wyrazów, lecimy po tablicy po i (lecimy po tablicy po j, bo chcemy każdy wyraz z każdym) i porównujemy czy element tablicy i jest równy elementowi z j, jeśli tak to inkrementujemy zmienną do zliczania (jeśli zmienna wyjdzie zero to zwracamy niezmienioną tablicę)
i tworzymy nową tablicę o rozmiarze starej pomniejszony o ilość zliczonych powtórzeń

No właśnie, i jak teraz przekopiować te stare niepowtórzone wyrazy?

0

Nie ma sensu zliczać jeśli potrzebujesz tylko unikatów.
Moim zdaniem najlepiej przenieść te elementy z tablicy na listę bo lista dostarcza Ci metodę contains którą sprawdzasz czy druga kolekcja zawiera jakiś element. Potem lecisz po pierwszej kolekcji i porównujesz z drugą. Unikaty przepisujesz do nowej tablicy.

Najlepiej jednak zrobić to na streamach, np. tak :

List<Integer> listWithoutDuplicates = listWithDuplicates.stream()
     .distinct()
     .collect(Collectors.toList());

Ale już dzisiaj taki jeden był co to szukał prawie identyczne zadanie więc pewnie musi to być zrobione na forach. Poszukaj temat w dziale Java.

2

Zamień tablice na seta

1 użytkowników online, w tym zalogowanych: 0, gości: 1