Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Java]Wyświetlanie tablicy bez zduplikowanych elementów
eFK
post 5.04.2016, 21:07:47
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 1.02.2014

Ostrzeżenie: (0%)
-----


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...

Ten post edytował eFK 5.04.2016, 21:09:46
Go to the top of the page
+Quote Post
rad11
post 5.04.2016, 21:13:02
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/questions/1796711...thout-using-set
Go to the top of the page
+Quote Post
eFK
post 6.04.2016, 20:06:17
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 1.02.2014

Ostrzeżenie: (0%)
-----


  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ę.
Go to the top of the page
+Quote Post
rad11
post 6.04.2016, 22:41:28
Post #4





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dodać tablice do czego ?
Go to the top of the page
+Quote Post
eFK
post 8.04.2016, 09:21:20
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 1.02.2014

Ostrzeżenie: (0%)
-----


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...

Ten post edytował eFK 8.04.2016, 09:22:16
Go to the top of the page
+Quote Post
rad11
post 8.04.2016, 18:49:48
Post #6





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/questions/2042813...-method-in-java
Go to the top of the page
+Quote Post
eFK
post 8.04.2016, 21:49:39
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 1.02.2014

Ostrzeżenie: (0%)
-----


Bardzo dziękuję, wszystko się udało :-)
Go to the top of the page
+Quote Post
Pyton_000
post 9.04.2016, 08:25:43
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----




Ten post edytował Pyton_000 9.04.2016, 08:25:54
Go to the top of the page
+Quote Post
kapslokk
post 9.04.2016, 08:46:13
Post #9





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Pyton - ale on ma kod w Javie a nie jsie, więc jak się ma Twój post do tego? ;d
Go to the top of the page
+Quote Post
Pyton_000
post 10.04.2016, 10:13:07
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Profilaktycznie tongue.gif Lepiej zapobiegać niż leczyć biggrin.gif
Go to the top of the page
+Quote Post
com
post 10.04.2016, 12:54:50
Post #11





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


Pyton_000 Tak na tym forum raz na ruski rok trafi się jednak JAVA biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.05.2025 - 07:06