Podczas pisania "wprawek" natrafiłem ta taki problem, z którym nie wiem jak sobie poradzić.
Założenie jest takie, że program losuje 20 liczb całkowitych z przedziału 1 do 10 i zapisuje je do tablicy. Następnie ma sprawdzić ile każdy z elementów razy wystapił w tablicy (ile razy się powtórzył). Tutaj nie miałem problemu, program to robi. Problem pojawia się przy wypisywaniu wyniku na ekran, ponieważ informacja pojawia się dla każdego z elementów.
Jak wyświetlić wyniki, tak aby każdy powtarzający sie element został wyświetlony tylko 1 raz?
Generalnie dla tablicy: [6, 6, 4, 4, 9, 9, 9, 9, 10, 9, 10, 7, 3, 6, 6, 8, 9, 9, 8, 4] otrzymuję wynik:
Liczba 6 pojawia się razy:4
Liczba 6 pojawia się razy:4
Liczba 4 pojawia się razy:3
Liczba 4 pojawia się razy:3
Liczba 9 pojawia się razy:7
Liczba 9 pojawia się razy:7
Liczba 9 pojawia się razy:7
Liczba 9 pojawia się razy:7
Liczba 10 pojawia się razy:2
Liczba 9 pojawia się razy:7
Liczba 10 pojawia się razy:2
Liczba 7 pojawia się razy:1
Liczba 3 pojawia się razy:1
Liczba 6 pojawia się razy:4
Liczba 6 pojawia się razy:4
Liczba 8 pojawia się razy:2
Liczba 9 pojawia się razy:7
Liczba 9 pojawia się razy:7
Liczba 8 pojawia się razy:2
Liczba 4 pojawia się razy:3
a chciałbym, aby wyglądało to tak:
Liczba 6 pojawia się razy:4
Liczba 4 pojawia się razy:3
Liczba 9 pojawia się razy:7
itd....
Jakieś sugestie?
import java.util.*;
public class Tablice02 {
public static void main(String[] arg){
int tablica[] = new int[20];
Random los = new Random();
for (int i = 0; i < tablica.length; i++){
int liczba = los.nextInt(10)+1;
tablica[i] = liczba;
}
System.out.println(Arrays.toString(tablica));
/// Sprawdzanie powtórzeń
for (int i = 0; i < tablica.length ; i++){
int suma = 0;
for (int j = 0; j < tablica.length ; j++){
if (tablica[i] == tablica[j]) suma++;
}
System.out.println("Liczba " + tablica[i] + " pojawia się razy:" + suma);
}
}
}