Sormi meni suuhun Java collectioneiden kanssa eikä apua tunnu löytyvän.
Minulla on kolme yhteistyöluokkaa A, B ja C. A luokka sisältää ArrayList collectionin beet ja luokka B sisältää ArrayList collectionin ceet. Luon 3 uutta ArrayList elementtiä beet collectioniin ja ceet collectioniin elementit i,j,k,s,t ja u.
Kuinka saan liitettyä nuo ceet:n elementit tiettyihin beet elementteihin? Vai pitäisikö minun jo ceet elementin luontivaiheessa saada määritettyä mihin beet elementtiin kyseinen tietoalkio kuuluu? Kuinka?
Onko mahdollista saada tulostettua elementtejä hierarkkisesti? Eli esim tässä tapauksessa:
beet:
[0] = ceen elementit i, j, k
[1] = ceen elemntit s, t, u
[2] = tyhjä
Kiitos jo lukeemaan vaivautuneille.
Eli haluat siis tehdä tietorakenteen, jossa on joukko B-olioita, joihin jokaiseen liittyy joukko C-olioita.
Tuossa eräs mahdollisuus. Eli lisäät halutut C:t oikealle B:lle heti luonnin yhteydessä (tai vaikka myöhemmin, mutta kuitenkin siten, että on olemassa tieto siitä mikä C kuuluu kullekin B:lle).
public class A { ArrayList beet; public A() { beet = new ArrayList(); } public void addB(B uusiB) { beet.add(b); } public void tulostus() { for (int i = 0; i < beet.size(); i++) { B b = (B)beet.get(i); b.tulostus(); } } } public class B { ArrayList ceet; public B() { ceet = new ArrayList(); } public addC(C uusic) { ceet.add(uusic); } public void tulostus() { for (int i = 0; i < ceet.size(); i++) { C c = (C)ceet.get(i); System.out.println(c.toString()); //tai jotain } } } ... public static void main(String[] args) { A a = new A(); B b = new B(); b.addC(new C("i")); b.addC(new C("j")); b.addC(new C("k")); a.addB(b); b = new B(); b.addC(new C("s")); b.addC(new C("t")); b.addC(new C("u")); a.addB(b); b = new B(); a.addB(b); a.tulostus(); }
Aivan näin. Sain homman melkein ratkaistua, mutta tuo selventi tyhjentävästi. Tattista vain..
Aihe on jo aika vanha, joten et voi enää vastata siihen.