Muita tapoja hakea harrastuksia: ================================ Naytto.java Alkuperäinen: ------------- private void tulosta(OutputStream os, final Jasen jasen) { jasen.tulosta(os); int jid = jasen.getTunnusNro(); for (Iterator it=kerho.harrastusIterator(jid); it.hasNext(); ) { Harrastus har = it.next(); har.tulosta(os); } } Harrastusten etsiminen ensin taulukkoon: ---------------------------------------- private void tulosta(OutputStream os, final Jasen jasen) { jasen.tulosta(os); int jid = jasen.getTunnusNro(); Collection jasenenHarrastukset = kerho.etsiHarrastukset(jid); for (Harrastus har : jasenenHarrastukset ) har.tulosta(os); } tai vielä parempi (jolloin Naytto-luokan ei tarvitse tietää id-numerosta): -------------------------------------------------------------------------- private void tulosta(OutputStream os, final Jasen jasen) { jasen.tulosta(os); Collection jasenenHarrastukset = kerho.etsiHarrastukset(jasen); for (Harrastus har : jasenenHarrastukset ) har.tulosta(os); } ja tuonhan voisi kirjoittaa vielä lyhyemminkin (suosittelen): ------------------------------------------------------------- private void tulosta(OutputStream os, final Jasen jasen) { jasen.tulosta(os); for (Harrastus har : kerho.etsiHarrastukset(jasen) ) har.tulosta(os); } Muita tapoja iteroida koko jäsenistö läpi: ========================================== Naytto.java private void tulosteet(char valinta) { ... Alkuperäinen: ------------- int i = 0; for (Jasen jasen : kerho ) { tulosta("Jäsen nro: " + i++); tulosta(System.out,jasen); tulosta(""); } Iteraattorilla: --------------- int i = 0; for (Iterator it = kerho.iterator(); it.hasNext(); ) { Jasen jasen = it.next(); tulosta("Jäsen nro: " + i++); tulosta(System.out,jasen); tulosta(""); } Indeksillä (huonoin koska vaatii indeksoituvuuden jäsenistöön): --------------------------------------------------------------- for (int i=0; i