ArrayList - wyświetlanie obiektu

0

Hej, mam problem z ArrayListą i nie wiem gdzie zrobiłam błąd.
Mimo tego że dodaje do niej 2 obiekty to jej rozmiar ciągle wynosi 1 i wyświetla się tylko jedna wartość.

To fragment Main'a :

ArrayList <Osoba> osoby = new ArrayList<>();
osoby.addAll(Arrays.asList(osoba1,osoba2,osoba3,osoba4,osoba5,osoba6));
        
        
        osoba2.wynajmij(pomieszczenie9, 1);
        osoba2.wynajmij(pomieszczenie8, 5);
       
int index=1;

System.out.println(osoby.get(index).wypiszPomieszczenia());

Fragmenty z klasy Osoba:

public void wypiszPomieszczenia(){
        System.out.println("rozmiar" + this.listaPomieszczen.size());
        for( int i=0 ; i<this.listaPomieszczen.size();i++){
            System.out.println(this.listaPomieszczen.get(i).powierzchnia);
        }
        
    }

public void wynajmij(Pomieszczenie p, int ileDni){
        if(p.czyUzytek){
            System.out.println("W pomieszczeniu trwa remont!");
        }
        else if(p.najemca!=null){
            System.out.println("Ktos juz wynajmuje to pomieszczenie!");
        }
        else{
            p.najemca = this;
            p.dataPoczatek= new Date();
            p.dataKoniec = addDaysToDate(p.dataPoczatek, ileDni);
            this.listaPomieszczen.add(p);
        }
    }

Bardzo proszę o pomoc ;)

0

Pokaż jak tworzysz obiekty pomieszczenie9, pomieszczenie8, listaPomieszczen.
Polecam jak najszybciej zapoznać się z debugerem i przejść sobie z nim program krok po kroku.

0
  1. Jak wygląda ta listaPomieszczen?
  2. Jesteś pewien że obiekt jest dodawany do listy?
0

Mam 2 konstruktory do stworzenia pomieszczenia:

public Pomieszczenie(int a, int b, int c){
        
        this.czyUzytek=true;
        this.Id++;
        this.powierzchnia = a*b*c;
        
    }
    
    public Pomieszczenie(int a){
        this.powierzchnia = a;
        this.czyUzytek=true;
        this.Id++;
    }

Tworze je w ten sposób:

Pomieszczenie pomieszczenie8 = new Pomieszczenie(3,4,5);
Pomieszczenie pomieszczenie9 = new Pomieszczenie(105);

Lista pomieszczeń jest w klasie osoba jako pole:
ArrayList <Pomieszczenie> listaPomieszczen = new ArrayList<>();

0

Zaczęłam się zastanawiać nad rzeczami które mi wypisaliście i zauważyłam parę, a raczej sporo, błędów. Teraz już wszystko działa ;)
Dzięki wielkie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1