Iterowanie po grupowych elementach podklasy

0

Witam
Mam problem o tuż mam coś takiego:

 
public class KontaktGrupowy {
    private List<Kontakt> listaIndywidualnych = new ArrayList<>();
    private List<KontaktGrupowy> listaGrupowych = new ArrayList<>();
    private String nazwa;
    private String opis;

    public List<Kontakt> getListaIndywidualnych() {
        return listaIndywidualnych;
    }
    

    public void setListaIndywidualnych(List<Kontakt> listaIndywidualnych) {
        this.listaIndywidualnych = listaIndywidualnych;
    }


    public String getNazwa() {
        return nazwa;
    }

    public void setNazwa(String nazwa) {
        this.nazwa = nazwa;
    }

 
    public String getOpis() {
        return opis;
    }

 
    public void setOpis(String opis) {
        this.opis = opis;
    }

    public List<KontaktGrupowy> getListaGrupowych() {
        return listaGrupowych;
    }

    public void setListaGrupowych(List<KontaktGrupowy> listaGrupowych) {
        this.listaGrupowych = listaGrupowych;
    }
 
    
    public List<Kontakt> getLista(){
        return listaIndywidualnych;
    }

    
}

A tutaj klasa kontakt

public class Kontakt {
    
    private String imie;
    private String nazwisko;
    private String numertel;

 
    
   public Kontakt(String imie,String nazwisko,String numertel){
        this.imie = imie;
        this.nazwisko = nazwisko;
        this.numertel = numertel;
    }
    
   

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 37 * hash + Objects.hashCode(this.imie);
        hash = 37 * hash + Objects.hashCode(this.nazwisko);
        hash = 37 * hash + Objects.hashCode(this.numertel);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Kontakt other = (Kontakt) obj;
        if (!Objects.equals(this.imie, other.imie)) {
            return false;
        }
        if (!Objects.equals(this.nazwisko, other.nazwisko)) {
            return false;
        }
        if (!Objects.equals(this.numertel, other.numertel)) {
            return false;
        }
        return true;
    }
   
    public void setImie(String imie) {
        this.imie = imie;
    }

    public void setNazwisko(String nazwisko) {
        this.nazwisko = nazwisko;
    }

    public void setNumertel(String numertel) {
        this.numertel = numertel;
    }

    public String getImie() {
        return imie;
    }

    public String getNazwisko() {
        return nazwisko;
    }

    public String getNumertel() {
        return numertel;
    }
   
   

}

I problem w tym, że w klasie KontaktGrupowy, może być inny obiekt typu KontaktGrupowy. Więc przyjmijmy, że mam takie klasy KontaktGrupowy:

     grupa1->grupa2->grupa3

main->
grupa4->grupa5
grupa6->grupa7

main ma w sobie 2 kontakty grupowe: grupa1, grupa4
grupa1 ma w sobie grupa2
grupa2 ma w sobie grupa3
grupa4 ma w sobie grupa5,grupa6
grupa6 ma w sobie grupa7

I chciałbym teraz przeiterować po tej Liście w taki sposób że posiadając powiedzmy nazwe danego kontaktu grupowego chcę dowiedzieć się jakie zawiera kontatky. Powiedzmy, że chce się dowiedzieć jakie kontakty zawiera grupa6.

Próbuje to już zrobić od 5 godzin i nie mam pojęcia jak to zrobić.

0

kiepsko zaimplementowane DAO zawsze będzie kiepskie :/ po co ci grupy w grupach w tej samej klasie? nie lepiej stworzyć nową klase która trzyma i grupy i klasy? KISS

0

oczywiście możesz też napisac jakiś interface typu

interface printMe(){
public Kontakt print();
}

i aby implementowała go klasa kontaktgrupowy i kontakt każda na swój sposób; wtedy będziesz mógł iterować właśnie po tej zależności.

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