demo
Class LinkitettyLista.LinkitettyListaIterator

java.lang.Object
  extended by demo.LinkitettyLista.LinkitettyListaIterator
All Implemented Interfaces:
java.util.Iterator<TYPE>
Enclosing class:
LinkitettyLista<TYPE>

private class LinkitettyLista.LinkitettyListaIterator
extends java.lang.Object
implements java.util.Iterator<TYPE>

Iteraattorin implementointi. Iteraattoria ei saa käyttää jos lista on muuttunut iteroinnin aloituksen jälkeen. Ainostaan iteraattorin itsensä kautta tehty poisto hyväksytään.

Version:
1.0, 22.03.2003
Author:
Vesa Lappalainen

Field Summary
private  LinkitettyLista.ListanAlkio<TYPE> edellinen
           
private  LinkitettyLista.ListanAlkio<TYPE> kohdalla
           
private  int odotettuMuutostenMaara
           
private  LinkitettyLista.ListanAlkio<TYPE> seuraava
           
 
Constructor Summary
private LinkitettyLista.LinkitettyListaIterator()
           
 
Method Summary
 boolean hasNext()
          Onko listassa seuraavata alkiota
 TYPE next()
          Palautetaan listan seuraava alkio
 void remove()
          Poistetaan listasta kohdalla oleva alkio
private  void tarkistaTila()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

seuraava

private LinkitettyLista.ListanAlkio<TYPE> seuraava

kohdalla

private LinkitettyLista.ListanAlkio<TYPE> kohdalla

edellinen

private LinkitettyLista.ListanAlkio<TYPE> edellinen

odotettuMuutostenMaara

private int odotettuMuutostenMaara
Constructor Detail

LinkitettyLista.LinkitettyListaIterator

private LinkitettyLista.LinkitettyListaIterator()
Method Detail

tarkistaTila

private void tarkistaTila()
                   throws java.util.ConcurrentModificationException
Throws:
java.util.ConcurrentModificationException

hasNext

public boolean hasNext()
                throws java.util.ConcurrentModificationException
Onko listassa seuraavata alkiota

Specified by:
hasNext in interface java.util.Iterator<TYPE>
Returns:
ture jos on
Throws:
java.util.ConcurrentModificationException - jos listassa muutoksia
Example:
 #import java.util.*;
 #CLASSIMPORT
 LinkitettyLista lista = new LinkitettyLista();
 Iterator i;
 
 i = lista.iterator(); // Tyhjä lista
 i.hasNext() === false;
 i.next(); #THROWS NoSuchElementException
 
 lista.lisaa(1);  
 i = lista.iterator();
 i.hasNext() === true;
 
 i = lista.iterator();
 i.hasNext() === true;  i.next().intValue() === 1;
 i.hasNext() === false;
 lista.lisaa(2);
 i.hasNext() === true; #THROWS ConcurrentModificationException 
 lista.lisaa(99);   
 i = lista.iterator();
 i.next(); i.next(); i.next().intValue() === 99;
 

next

public TYPE next()
          throws java.util.NoSuchElementException,
                 java.util.ConcurrentModificationException
Palautetaan listan seuraava alkio

Specified by:
next in interface java.util.Iterator<TYPE>
Returns:
listan seuraava alkio
Throws:
java.util.NoSuchElementException - jos listassa ei enää alkioita
java.util.ConcurrentModificationException - jos listassa muutoksia

remove

public void remove()
            throws java.lang.UnsupportedOperationException,
                   java.util.ConcurrentModificationException
Poistetaan listasta kohdalla oleva alkio

Specified by:
remove in interface java.util.Iterator<TYPE>
Throws:
java.lang.UnsupportedOperationException - ei heitä
java.util.ConcurrentModificationException - jos listassa muutoksia
Example:
 #import java.util.*;
 #CLASSIMPORT
 LinkitettyLista lista = new LinkitettyLista();
 Iterator i;
 
 i = lista.iterator();
 i.remove(); #THROWS IllegalStateException
 
 lista.lisaa(1);  lista.lisaa(2); lista.lisaa(99);   
 i = lista.iterator();
 i.next(); i.remove();   
 i.next(); i.remove();  
 i.next(); i.remove();  lista.toString() === "";
 
 lista.lisaa(1);  lista.lisaa(2); lista.lisaa(99);   
 i = lista.iterator();
 i.next();
 lista.lisaa(2);
 i.remove();      #THROWS ConcurrentModificationException