001 /** 002 * Esimerkki linkitetytstä listasta Java 1.5:n geneerisyyttä 003 * ja "autoboxingia" käyttäen. 004 * @author Vesa Lappalainen 005 * @version 1.0, 16.03.2002 006 * @version 1.1, 01.03.2005 007 */ 008 009 public class LinListaGen<TYPE> { 010 011 /** 012 * Linkitetyn listan yksi alkio. Sisältää datan ja viitteen seuraavaan. 013 */ 014 static public class Alkio<TYPE> { 015 private TYPE i; 016 private Alkio seuraava; 017 public Alkio(TYPE i) { this.i = i; seuraava = null; } 018 public TYPE getI() { return i; } 019 } 020 021 private Alkio eka; 022 private Alkio viimeinen; 023 024 public LinListaGen() { eka = null; viimeinen = null; } 025 public LinListaGen(int koko) { this(); } 026 027 public void lisaa(int i) { 028 Alkio uusi = new Alkio(i); 029 if ( eka != null ) viimeinen.seuraava = uusi; 030 else eka = uusi; 031 viimeinen = uusi; 032 } 033 034 public String toString() { 035 StringBuffer s = new StringBuffer(""); 036 for (Alkio i=eka; i!=null; i = i.seuraava ) 037 s.append(" " + i.getI()); 038 return s.toString(); 039 } 040 041 public static void main(String[] args) { 042 LinListaGen<Integer> luvut = new LinListaGen<Integer>(); 043 try { 044 luvut.lisaa(0); luvut.lisaa(2); 045 luvut.lisaa(99); 046 } catch ( Exception e ) { 047 System.out.println("Virhe: " + e.getMessage()); 048 } 049 System.out.println(luvut); 050 } 051 }