kerho
Class Harrastukset.HarrastuksetIterator

java.lang.Object
  extended by kerho.Harrastukset.HarrastuksetIterator
All Implemented Interfaces:
Iterator<Harrastus>
Enclosing class:
Harrastukset

public class Harrastukset.HarrastuksetIterator
extends Object
implements Iterator<Harrastus>

Luokka tietyn jäsen harrastusten iteroimiseksi

Example:
 #PACKAGEIMPORT
 #import java.util.*;
 
  Harrastukset harrasteet = new Harrastukset();
  Harrastus pitsi21 = new Harrastus(2); harrasteet.lisaa(pitsi21);
  Harrastus pitsi11 = new Harrastus(1); harrasteet.lisaa(pitsi11);
  Harrastus pitsi22 = new Harrastus(2); harrasteet.lisaa(pitsi22);
  Harrastus pitsi12 = new Harrastus(1); harrasteet.lisaa(pitsi12);
  Harrastus pitsi23 = new Harrastus(2); harrasteet.lisaa(pitsi23);
  Harrastus pitsi51 = new Harrastus(5); harrasteet.lisaa(pitsi51);
 
  Iterator i2=harrasteet.iterator(2);
  i2.next() === pitsi21;
  i2.next() === pitsi22;
  i2.next() === pitsi23;
  i2.next() === pitsi12;  #THROWS NoSuchElementException  
  
  int n = 0;
  for (Iterator i = harrasteet.iterator(2); i.hasNext(); ) {
    i.next().getJasenNro() === 2; n++;
  }
  
  n === 3;
  
  Iterator i3=harrasteet.iterator(3);
  i3.hasNext() === false;
  i3.next()    === pitsi12;  #THROWS NoSuchElementException  
  
  Iterator i4=harrasteet.iterator(4);
  i4.next()    === pitsi12;  #THROWS NoSuchElementException  
  
  Iterator i5=harrasteet.iterator(5);
  i5.next()    === pitsi51;    
  i5.next()    === pitsi51;  #THROWS NoSuchElementException  
 
,
 // Testataan erikoistapauksia
  Harrastukset harrasteet = new Harrastukset();
  Iterator i;
  
  i = harrasteet.iterator(2); // Iteroidaan tyhjään joukoon
  i.next()    === null;       #THROWS NoSuchElementException  
  i = harrasteet.iterator(2);
  i.hasNext() === false;
  
  Harrastus pitsi21 = new Harrastus(2); harrasteet.lisaa(pitsi21);
  i = harrasteet.iterator(1); // Iteroidaan harrastusta jota ei ole
  i.next()    === null;       #THROWS NoSuchElementException  
  i = harrasteet.iterator(1);
  i.hasNext() === false;
  
  i = harrasteet.iterator(2); // Iteroidaan 1. olevaa
  i.next()    === pitsi21;  
  i.next()    === null;       #THROWS NoSuchElementException  
  
  i = harrasteet.iterator(2); // Iteroidaan 1. olevaa hasNext():in kanssa
  i.hasNext() === true;       // hasNext ekalla kertaa 
  i.next()    === pitsi21;  
  i.hasNext() === false; 
  i.next()    === null;       #THROWS NoSuchElementException
    
  Harrastus pitsi31 = new Harrastus(3); harrasteet.lisaa(pitsi31);
  i = harrasteet.iterator(1); // Iteroidaan 2. alkion joukosta olematonta
  i.next()    === null;       #THROWS NoSuchElementException  
  i = harrasteet.iterator(1); // Kokeillaan olematonta hasNext():in kanssa
  i.hasNext() === false;
  
  i = harrasteet.iterator(2); // Iteroidaan ei viimeisenä olevaa
  i.next()    === pitsi21;  
  i.next()    === null;       #THROWS NoSuchElementException  
  
  i = harrasteet.iterator(2); // 1. hasNext():in avulla
  i.hasNext() === true; 
  i.next()    === pitsi21;  
  i.hasNext() === false; 
  i.next()    === null;       #THROWS NoSuchElementException
    
  i=harrasteet.iterator(3);   // Iteroidaan viimeisenä olevaa
  i.hasNext() === true; 
  i.next()    === pitsi31;  
  i.hasNext() === false; 
  // i.next()    === null;       #THROWS NoSuchElementException // NOPMD ei tykkää
 

Constructor Summary
Harrastukset.HarrastuksetIterator(int vnro)
          Alustetaan iteraattori käymään läpi tietyn jäsenen harrastukset
 
Method Summary
 boolean hasNext()
          Tutkitaan onko vielä halutun jäsenen harrastuksia jäljellä.
 Harrastus next()
          Palautetaan jäsenen seuraava harrastus.
 void remove()
          Tuhoamista ei ole toteutettu
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Harrastukset.HarrastuksetIterator

public Harrastukset.HarrastuksetIterator(int vnro)
Alustetaan iteraattori käymään läpi tietyn jäsenen harrastukset

Parameters:
vnro - viitenumero jäseneen
Method Detail

hasNext

public boolean hasNext()
Tutkitaan onko vielä halutun jäsenen harrastuksia jäljellä.

Specified by:
hasNext in interface Iterator<Harrastus>
Returns:
true jos jäsenen harrastuksia on vielä
See Also:
Iterator.hasNext()

next

public Harrastus next()
               throws NoSuchElementException
Palautetaan jäsenen seuraava harrastus.

Specified by:
next in interface Iterator<Harrastus>
Returns:
jäsenen seuraava harrastus
Throws:
NoSuchElementException - jos harrastuksia ei enää ole
See Also:
Iterator.next()

remove

public void remove()
            throws UnsupportedOperationException
Tuhoamista ei ole toteutettu

Specified by:
remove in interface Iterator<Harrastus>
Throws:
UnsupportedOperationException - aina
See Also:
Iterator.remove()