Witam,
muszę stworzyć kilka metod, między innymi:
- usunięcie wszystkich elementów o podanej wartości;
- wyeliminowanie z tablicy wszystkich powtórzeń.
Napisałem coś takiego ale niestety pierwsza metoda nie działa poprawnie, gdy mamy dwie takie same liczby pod rząd, a druga działa jeszcze gorzej. Czy mógłby mi ktoś to poprawić lub podpowiedzieć jak to zrobić?
PS. Nie mogę używać Array'a
public class Tablica{
int n;
int[] tablica;
public Tablica(int n, int z){
this.n=n;
tablica = new int[n];
for(int i=0; i<tablica.length; i++)
tablica[i] = (int)(Math.random()*z);
}
public void wyswietl(){
for(int i=0; i<tablica.length; i++)
System.out.print(tablica[i]+" ");
System.out.println();
}
public void usunElement(int element){
int u = 0;
for(int i=0; i<tablica.length; i++){
if(tablica[i] == element){
for(int j=i; j<tablica.length-1; j++){
tablica[j] = tablica[j+1];
}
u++;
tablica[tablica.length-u]=-1;
}
}
int[] tab2 = new int[tablica.length-u];
for(int i=0; i<tab2.length; i++){
tab2[i] = tablica[i];
}
tablica = tab2;
}
public void usunPowtorzenia(){
int u = 0;
for(int i=0; i<tablica.length; i++){
for(int j=i+1; j<tablica.length-1; j++){
if(tablica[i]==tablica[j]){
for(int k=i; k<tablica.length-1; k++){
tablica[k]=tablica[k+1];
}
u++;
}
}
}
int[] tab2 = new int[tablica.length-u];
for(int i=0; i<tab2.length; i++){
tab2[i] = tablica[i];
}
tablica = tab2;
}
}