/** * */ package luento18; /** * * @author vesal * @version 17.3.2011 * @param minkä tyyppisä alkioita talletetaan */ public class LinListaGen { /** * Linkitetyn lista yksi alkio * @author vesal * @version 17.3.2011 */ static private class Alkio { private TYPE i; private Alkio seuraava; /** * Alustetaan listan alkio * @param i arvo jolla alustetaan */ public Alkio(TYPE i) { this.i = i; seuraava = null; } } private Alkio eka; private Alkio viimeinen; /** * Alustetaan linkitetty lista */ public LinListaGen() { eka = null; viimeinen = null; } /** * Lisätään uusi alkio listaan * @param i lisättävä alkio * @example *
     *    LinListaGen luvut = new LinListaGen();
     *    luvut.toString() === "";
     *    luvut.lisaa(2);  luvut.toString() === "2";
     *    luvut.lisaa(99);  luvut.toString() === "2 99";
     *    luvut.lisaa(77);  luvut.toString() === "2 99 77";
     *    
     *    LinListaGen sanat = new LinListaGen();
     *    sanat.toString() === "";
     *    sanat.lisaa("kissa");  sanat.toString() === "kissa";
     *    sanat.lisaa("kana");  sanat.toString() === "kissa kana";
     *    sanat.lisaa("helmipöllö");  sanat.toString() === "kissa kana helmipöllö";
     * 
*/ public void lisaa(TYPE i) { Alkio uusi = new Alkio(i); if ( eka == null ) eka = uusi; else viimeinen.seuraava = uusi; viimeinen = uusi; } /** * Palauetaan lista muodossa "2 99 77"; * @see java.lang.Object#toString() */ public String toString() { StringBuilder sb = new StringBuilder(); Alkio alkio = eka; String erotin = ""; while ( alkio != null ) { TYPE arvo = alkio.i; sb.append(erotin + arvo); alkio = alkio.seuraava; erotin = " "; } return sb.toString(); } /** * @param args ei käytössä */ public static void main(String[] args) { LinListaGen luvut = new LinListaGen(); luvut.lisaa(0); /// luvut.lisaa(new Integer(0)); luvut.lisaa(2); luvut.lisaa(99); System.out.println(luvut); } }