Witam mam taki problem.
Mam klase Tytuly przechowywujaca ksiazki, w ktorej chce sortowac dane po nazwiskach i imieniach.
W klasie uchwyt przetwarzam dane, m.in. sortuje, wypisuje dane na ekran itd.
W klasie wypisz wypisuje dane.
Problem polega na tym ze jezeli, na rzecz obiektu uchwyt (w klasie wypisz) wywolam funkcje sortuj(), to dane w zasadzie sa posortowane, ale jezeli wywolam funkcje wyswietlTytuly() po funkcji sortuj() to wyswietlaja sie nie posortowane tytuly.
public class Tytuly implements Comparable<Tytuly>
{
private String imie;
private String nazwisko;
private String tytul;
private int ISBN;
ArrayList<Ksiazka> lista_ksiazka = new ArrayList<Ksiazka>();
public int compareTo(Tytuly obj)
{
int zmienna = getNazwisko().compareTo(obj.getNazwisko());
if(zmienna == 0)
zmienna = getImie().compareTo(obj.getImie());
return zmienna;
}
public class Uchwyt
{
ArrayList <Tytuly> lista_tytuly = new ArrayList<Tytuly>();
public String wyswietlTytuly()
{
String s = "";
for(int i = 0; i < getRozmiar() ; i++)
{
s += "[ " + i + " ] " + getLista().get(i).toString() + "\n";
}
return s;
}
public void sortuj(int kryterium)
{
if(kryterium == 1)
Collections.sort(getLista());
if(kryterium == 2)
Collections.sort(lista_tytuly , new SortujTytulPoTytul());
if(kryterium == 3)
Collections.sort(lista_tytuly, new SortujTytulPoISBN());
}
public class Wypisz
{
public static void main(String[] args) throws IOException
{
Uchwyt uchwyt = new Uchwyt();
uchwyt.dodajTytul("Stanislaw", "Wyspianski", "Wesele" , 1);
uchwyt.dodajTytul("Henryk", "Sienkiewicz", "Potop" , 2);
uchwyt.dodajTytul("Boleslaw", "Prus", "Lalka", 3);
String elo = uchwyt.wyswietlTytuly();
System.out.println(elo);
uchwyt.sortuj(1);
System.out.println(elo);
}
Jezeli zrobie tak w klasie uchwyt, to wypisze dane posortowane. Jak zrobic, aby posortowane dane od chwili wywolania funkcji sortuj() byly 'zapisane' w arrayliscie lista_tytuly i od tej chwili kazde operacje na tej arrayliscie dotycza juz posortowanych danych np. wywolanie funkcji wyswietlTytuly() wyswietla mi sie juz posortowane dane ?
public class Uchwyt
{
public void sortuj(int kryterium)
{
if(kryterium == 1)
Collections.sort(getLista());
for(Tytuly zmienna : lista_tytuly)
System.out.println(zmienna);
if(kryterium == 2)
Collections.sort(lista_tytuly , new SortujTytulPoTytul());
if(kryterium == 3)
Collections.sort(lista_tytuly, new SortujTytulPoISBN());
}
}
Będę wdzięczny za każdą pomoc.