demo
Class LinkitettyLista<TYPE>

java.lang.Object
  extended by demo.LinkitettyLista<TYPE>
Type Parameters:
TYPE - Tyyppi jota lista tallettaa
All Implemented Interfaces:
java.lang.Iterable<TYPE>
Direct Known Subclasses:
KouluLuokka2

public class LinkitettyLista<TYPE>
extends java.lang.Object
implements java.lang.Iterable<TYPE>

Yleinen linkitetty lista jolla voi tallentaa mitä tahansa alioita.

Version:
1.0, 15.03.2003
Author:
Vesa Lappalainen

Nested Class Summary
private  class LinkitettyLista.LinkitettyListaIterator
          Iteraattorin implementointi.
private static class LinkitettyLista.ListanAlkio<TYPE>
           
 
Field Summary
private  LinkitettyLista.ListanAlkio<TYPE> ensimmainen
           
protected  int muutostenMaara
          Laskuri listaan tehtyjen muutosmäärälle.
private  LinkitettyLista.ListanAlkio<TYPE> viimeinen
           
 
Constructor Summary
LinkitettyLista()
           
 
Method Summary
 java.util.Iterator<TYPE> iterator()
          Palautetaan iteraattori listaan
 void kaanna()
          Käännetään lista toisin päin Yksi yksinkertainen idea: tehdään apulista ja listan alusta siiretään aina alkio kerrallaan apulistan alkuun: 1) Otetaan osoitin listan alkuun 2) apuosoittimet eka ja vika uuteen listaan 3) otetaan osoittimen kohdasta ensimmäinen pois ja li- sätään se uuden listan alkuun 4) toistetaan 3:sta kunnes apuosoitin== null
 void lisaa(TYPE alkio)
          Lisätään uusi alkio listaan
static void main(java.lang.String[] args)
          Testataan linkitettyä listaa
 void poistaKaikki()
          Poistetaan kaikki listan alkiot
protected  void teeMuutos()
          Tehdään listaan muutos, eli lasketaan muutosten määrää
 java.lang.String toString()
          Tulostetaan listan sisältö merkkijonoon
 void tulosta()
          Tulostetaan lista konsolille
 void tulosta(java.io.OutputStream os)
          Tulostetaan lista tietovirtaan
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ensimmainen

private LinkitettyLista.ListanAlkio<TYPE> ensimmainen

viimeinen

private LinkitettyLista.ListanAlkio<TYPE> viimeinen

muutostenMaara

protected transient int muutostenMaara
Laskuri listaan tehtyjen muutosmäärälle. Iteraattori käyttää tätä tutkiakseen, että listaan ei ole tullut muutoksia iteroinin aloituksen jälkeen

Constructor Detail

LinkitettyLista

public LinkitettyLista()
Method Detail

teeMuutos

protected void teeMuutos()
Tehdään listaan muutos, eli lasketaan muutosten määrää


lisaa

public void lisaa(TYPE alkio)
Lisätään uusi alkio listaan

Parameters:
alkio -
Example:
 LinkitettyLista lista = new LinkitettyLista();
 lista.toString() === "";
 lista.lisaa(1);    lista.toString() === "1 ";
 lista.lisaa(2);    lista.toString() === "1 2 ";
 lista.lisaa(99);   lista.toString() === "1 2 99 ";
 

tulosta

public void tulosta(java.io.OutputStream os)
Tulostetaan lista tietovirtaan

Parameters:
os -

tulosta

public void tulosta()
Tulostetaan lista konsolille


toString

public java.lang.String toString()
Tulostetaan listan sisältö merkkijonoon

Overrides:
toString in class java.lang.Object
Returns:
listan sisältö merkkijonona

poistaKaikki

public void poistaKaikki()
Poistetaan kaikki listan alkiot

Example:
 LinkitettyLista lista = new LinkitettyLista();
 lista.lisaa(1);  lista.lisaa(2); lista.lisaa(99);   
 lista.toString() === "1 2 99 ";
 lista.poistaKaikki();
 lista.toString() === "";
 

kaanna

public void kaanna()
Käännetään lista toisin päin
 Yksi yksinkertainen idea: tehdään  apulista  ja  listan alusta
 siiretään aina alkio kerrallaan apulistan alkuun:
 1)   Otetaan osoitin listan alkuun
 2)   apuosoittimet eka ja vika uuteen listaan
 3)   otetaan osoittimen kohdasta ensimmäinen pois ja  li-
      sätään se uuden listan alkuun 
 4)   toistetaan 3:sta kunnes apuosoitin== null
 

Example:
 LinkitettyLista lista = new LinkitettyLista();
 lista.lisaa(1);  
 lista.toString() === "1 "; lista.kaanna();  lista.toString() === "1 ";
 lista.lisaa(2); 
 lista.toString() === "1 2 "; lista.kaanna();  lista.toString() === "2 1 ";
 lista.lisaa(99);   
 lista.toString() === "2 1 99 "; lista.kaanna();  lista.toString() === "99 1 2 ";
 lista.lisaa(77);   
 lista.toString() === "99 1 2 77 "; lista.kaanna();  lista.toString() === "77 2 1 99 ";
 

iterator

public java.util.Iterator<TYPE> iterator()
Palautetaan iteraattori listaan

Specified by:
iterator in interface java.lang.Iterable<TYPE>
Returns:
listan iteraattori

main

public static void main(java.lang.String[] args)
Testataan linkitettyä listaa

Parameters:
args - ei käytössä