demo
Class LinkitettyLista.LinkitettyListaIterator
java.lang.Object
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
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 |
seuraava
private LinkitettyLista.ListanAlkio<TYPE> seuraava
kohdalla
private LinkitettyLista.ListanAlkio<TYPE> kohdalla
edellinen
private LinkitettyLista.ListanAlkio<TYPE> edellinen
odotettuMuutostenMaara
private int odotettuMuutostenMaara
LinkitettyLista.LinkitettyListaIterator
private LinkitettyLista.LinkitettyListaIterator()
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