diff --git a/src/Tietorakenteet/Jasenet.java b/src/Tietorakenteet/Jasenet.java index 5a363f7a948c7368fd0ee7eaa51af8f05779277d..eb67eaaf6b5ac5aee9842ea461533e5a9e29ead1 100644 --- a/src/Tietorakenteet/Jasenet.java +++ b/src/Tietorakenteet/Jasenet.java @@ -6,7 +6,7 @@ package Tietorakenteet; * Hiihtorekisterin jasenet, joka lisää ja poistaa jäseniä. */ public class Jasenet { - private static final int MAX_JASENIA = 10; + private static int MAX_JASENIA = 5; private int lkm = 0; private String tiedostonNimi = ""; private Jasen alkiot[] = new Jasen[MAX_JASENIA]; @@ -47,8 +47,13 @@ public class Jasenet { */ public void lisaa(Jasen jasen) throws SailoException { if (lkm >= alkiot.length) throw new SailoException("Liikaa alkioita"); + // TODO jos taulukko on täynnä, tehdään uusi taulukko, + Jasen uusi[] = new Jasen[MAX_JASENIA+5]; + for (int i = 0; i < alkiot.length; i++) { + uusi[i] = alkiot[i]; + } + alkiot = uusi; alkiot[lkm] = jasen; - //jasenisto.add(jasen); lkm++; } @@ -60,6 +65,7 @@ public class Jasenet { * @throws IndexOutOfBoundsException jos i ei ole sallitulla alueella */ public Jasen anna(int i) throws IndexOutOfBoundsException { + if (i < 0 || lkm <= i) throw new IndexOutOfBoundsException("Laiton indeksi: " + i); return alkiot[i];