demo
Class Taulukko

java.lang.Object
  extended by demo.Taulukko
All Implemented Interfaces:
java.lang.Cloneable

public class Taulukko
extends java.lang.Object
implements java.lang.Cloneable

Esimerkki dynaamisesta taulukosta

Version:
1.0, 02.03.2002, 1.1, 09.03.2002
Author:
Vesa Lappalainen

Nested Class Summary
static class Taulukko.TaulukkoTaysiException
          Poikkeusluokka täydelle taulukolle
 
Field Summary
private  int[] alkiot
           
private  int lkm
           
 
Constructor Summary
Taulukko()
          Alustetaan taulukko max 10 kokoiseksi
Taulukko(int koko)
          Alustetaan taulukko halutun kokoiseksi
 
Method Summary
 Taulukko clone()
          Luodaan taulukosta identtinen kopio
 boolean equals(java.lang.Object o)
          Verrataan kahta taulukkoa toisiinsa
 int get(int i)
          Palautetaan taulukon paikassa i oleva arvo
 int getLkm()
           
 int hashCode()
           
 void lisaa(int i)
          Lisätään taulukkoon uusi alkio
static void main(java.lang.String[] args)
          Testataan Taulukko-luokkaa
 int poista(int n)
          Poistetaan taulukosta kaikki luvun n esiintymät
 void set(int i, int luku)
          Asetetaan taulukon i:n alkiolle uusi arvo
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

alkiot

private int[] alkiot

lkm

private int lkm
Constructor Detail

Taulukko

public Taulukko()
Alustetaan taulukko max 10 kokoiseksi


Taulukko

public Taulukko(int koko)
Alustetaan taulukko halutun kokoiseksi

Parameters:
koko - taulukon alkioiden maksimimäärä
Method Detail

lisaa

public void lisaa(int i)
           throws Taulukko.TaulukkoTaysiException
Lisätään taulukkoon uusi alkio

Parameters:
i - lisättävä alkio
Throws:
Taulukko.TaulukkoTaysiException - jos taulukko on jo täynnä
Example:
 #THROWS Taulukko.TaulukkoTaysiException
   Taulukko t = new Taulukko(3);
                  t.toString() === "";
   t.lisaa(0);    t.toString() === " 0";
   t.lisaa(2);    t.toString() === " 0 2";
   t.lisaa(99);   t.toString() === " 0 2 99";
   t.lisaa(99);   t.toString() === " 0 2 99"; #THROWS Taulukko.TaulukkoTaysiException
 

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
Taulukko merkkijonoja " 0 2 99"

getLkm

public int getLkm()
Returns:
taulukon alkioiden lukumäärä

set

public void set(int i,
                int luku)
         throws java.lang.IndexOutOfBoundsException
Asetetaan taulukon i:n alkiolle uusi arvo

Parameters:
i - mihin indeksii asetetaan
luku - uusi arvo
Throws:
java.lang.IndexOutOfBoundsException - jos indeksi laitoin
 #THROWS Taulukko.TaulukkoTaysiException
   Taulukko t = new Taulukko(3);
   t.lisaa(0);  t.lisaa(2);  t.lisaa(99); 
   t.get(1) === 2;
   t.set(1,4);
   t.get(1) === 4;
   t.set(22,1);       #THROWS IndexOutOfBoundsException
   t.get(22) === 4;   #THROWS IndexOutOfBoundsException
 

get

public int get(int i)
        throws java.lang.IndexOutOfBoundsException
Palautetaan taulukon paikassa i oleva arvo

Parameters:
i - indeksi josta arvoa haetaan
Returns:
paikassa i oleva arvo
Throws:
java.lang.IndexOutOfBoundsException - jos indeksi laitoin

clone

public Taulukko clone()
               throws java.lang.CloneNotSupportedException
Luodaan taulukosta identtinen kopio

Overrides:
clone in class java.lang.Object
Returns:
taulukon kopio
Throws:
java.lang.CloneNotSupportedException
Example:
 #THROWS Taulukko.TaulukkoTaysiException,CloneNotSupportedException 
   Taulukko t = new Taulukko();
   for (int luku:new int[]{4,7,6,3,6,2}) t.lisaa(luku); // NOPMD
   
   Taulukko t2 = t.clone();
   t2.toString() === " 4 7 6 3 6 2"; // NOPMD
   t.lisaa(99);
   t2.toString() === " 4 7 6 3 6 2";
   t.poista(6);
   t.toString()  === " 4 7 3 2 99";
   t2.toString() === " 4 7 6 3 6 2";
 

poista

public int poista(int n)
Poistetaan taulukosta kaikki luvun n esiintymät

Parameters:
n - poistettava luku
Returns:
uusi lkm
Example:
 #THROWS Taulukko.TaulukkoTaysiException
   Taulukko t = new Taulukko();
   for (int luku:new int[]{4,7,6,3,6,2}) t.lisaa(luku);  // NOPMD
                 t.toString() === " 4 7 6 3 6 2";
   t.poista(8);  t.toString() === " 4 7 6 3 6 2";
   t.poista(6);  t.toString() === " 4 7 3 2";
   t.poista(4);  t.toString() === " 7 3 2";
   t.poista(2);  t.toString() === " 7 3";
   t.poista(7);  t.toString() === " 3";
   t.poista(3);  t.toString() === "";
   t.poista(3);  t.toString() === "";
 

equals

public boolean equals(java.lang.Object o)
Verrataan kahta taulukkoa toisiinsa

Overrides:
equals in class java.lang.Object
Parameters:
o - verrattava taulukko
Returns:
true jos taulukoissa sama pituus ja samat alkiot
Example:
 #THROWS Taulukko.TaulukkoTaysiException
   Taulukko t = new Taulukko();
   for (int luku:new int[]{4,7,6,3,6,2}) t.lisaa(luku); // NOPMD
   Taulukko t2 = new Taulukko();
   for (int luku:new int[]{4,7,6,3}) t2.lisaa(luku);    // NOPMD
   t.equals("kissa") === false; // NOPMD
   t.equals(t2) === false;
   t2.lisaa(6); t2.lisaa(2);
   t.equals(t2) === true;
 

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
Returns:
hajautusavain

main

public static void main(java.lang.String[] args)
                 throws java.lang.CloneNotSupportedException
Testataan Taulukko-luokkaa

Parameters:
args - ei käytössä
Throws:
java.lang.CloneNotSupportedException - ei heitä