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.