Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Java]Wyświetlanie tablicy bez zduplikowanych elementów
Forum PHP.pl > Forum > Przedszkole
eFK
Witam serdecznie.
Mam za zadanie wyświetlić tablicę bez zduplikowanych elementów. Mój kod teoretycznie powinien działać, jednak oczywiście tak nie jest.

  1.  
  2. public class test2 {
  3. public static void main(String[] args) {
  4. int[] arr = { 2,3,4,3,2,6,3,6,8,2,9 };
  5.  
  6. for (int i = 0; i < arr.length; i++){
  7. for(int a = i+1; a< arr.length; a++){
  8. if(arr[i] == arr[a]){
  9. if(i != a){
  10. //System.out.println(a);
  11. System.out.println(arr[i]);
  12. }
  13. }
  14. }
  15. }
  16. }
  17. }
  18.  



1. Przepuszczam tablicę przez pierwszą pętle for w celu uzyskania indeksów i każdego kolejnego elementu
2. Przepuszczam tablicę przez drugą pętlę for, gdzie tworzę zmienną a, która ma być zawsze większa od i
3. Porównuje porównuje arr[i] z arr[a]
4. Każę elementy tablicy dla każdego indeksu i nie równego a, czyli nie równego zduplikowanemu elementowi tablicy

W momencie gdy wypisuje same indeksy, są one w zasadzie prawidłowe (jeden, index 6 wypisuje się 2x nie wiem dlaczego), ale poza tym wszystko się zgadza. Są to indexy duplikatów. Ale potem, gdy próbuje wypisać tablicę bez tych duplikatów, wychodzi po prostu misz-masz.

Czy mogę prosić o wytknięcie mi błędu w rozumowaniu oraz nakierowaniu na właściwe rozwiązanie? W zadaniu nie wolno używać pomocniczych tablic, kolekcji i stringów oraz klas nie należących do standardu java.lang...
eFK
  1.  
  2. public static int[] removeDuplicates(int[] arr) {
  3.  
  4. int end = arr.length;
  5.  
  6. FOR (int i = 0; i < end; i++) {
  7. FOR (int j = i + 1; j < end; j++) {
  8. IF (arr[i] == arr[j]) {
  9. int shiftLeft = j;
  10. FOR (int k = j+1; k < end; k++, shiftLeft++) {
  11. arr[shiftLeft] = arr[k];
  12. }
  13. end--;
  14. j--;
  15. }
  16. }
  17. }
  18.  
  19. int[] whitelist = new int[end];
  20. FOR(int i = 0; i < end; i++){
  21. whitelist[i] = arr[i];
  22. }
  23. RETURN whitelist;
  24. }
  25.  



A mogę jeszcze prosić wyjaśnienie jak dodać do tego tablicę? Bo kod mogę rozebrać na drobne, niestety nie udało mi się znaleźć jak do tego dodać tablicę. Rozumiem że potrzeba statyczną metodę publiczną z tablicą, a następnie trzeba w niej utworzyć instancję, ale jak? Od wczoraj szukam i nigdzie nie ma tego dobrze konkretnie opisanego z przykładami.
Z góry bardzo dziękuję.
rad11
Dodać tablice do czego ?
eFK
Już tłumaczę: chodzi o to, aby powyższy kod wyświetlał z tablicy elementy bez zduplikowanych elementów (tych, które się powtarzają). Tylko nie mogę znaleźć jak w javie dodać tablicę implementowaną w metodzie statycznej do metody nie-statycznej...
eFK
Bardzo dziękuję, wszystko się udało :-)
Pyton_000
kapslokk
Pyton - ale on ma kod w Javie a nie jsie, więc jak się ma Twój post do tego? ;d
Pyton_000
Profilaktycznie tongue.gif Lepiej zapobiegać niż leczyć biggrin.gif
com
Pyton_000 Tak na tym forum raz na ruski rok trafi się jednak JAVA biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.