diff --git a/src/Kirjalista/Kirjat.java b/src/Kirjalista/Kirjat.java index 460ee4856fc8ee24b4510b60a64f061d0b719935..bb288ca3eaf284331d92d08d2576a750fa421cf6 100644 --- a/src/Kirjalista/Kirjat.java +++ b/src/Kirjalista/Kirjat.java @@ -37,6 +37,7 @@ import java.util.NoSuchElementException; * * int k2Id = k2.getId(); * kirjat.poista(k2Id); + * kirjat.poista(0); #THROWS NoSuchElementException * kirjat.hae(k2Id); #THROWS NoSuchElementException * * </pre> @@ -81,17 +82,14 @@ public class Kirjat { * @throws NoSuchElementException Jos id:tä vastaavaa kirjaa ei löydy */ public void poista(int id) throws NoSuchElementException { - for (int i = 0; i < alkiot.length; i++) { - if (alkiot[i].getId() == id) { - for (int j = i; j < alkiot.length - 1; j++) { - alkiot[j] = alkiot[j + 1]; - } - alkiot[alkiot.length - 1] = null; - this.lkm--; - return; + int luku, kirj; + for (luku = 0, kirj = 0; luku < this.lkm; luku++) { + if (this.alkiot[luku].getId() != id) { + this.alkiot[kirj++] = this.alkiot[luku]; } } - throw new NoSuchElementException("Kirjaa id:llä " + id + " ei löydy."); + this.lkm = kirj; + if (luku == kirj) throw new NoSuchElementException("Kirjaa id:llä " + id + " ei löydy."); } /** diff --git a/src/Kirjalista/test/KirjatTest.java b/src/Kirjalista/test/KirjatTest.java index 02e1f5cfc71f568ed75e4bfd1cf1d4e48cb0d716..83cb93767c7d65fd9f4b55cf057875697f594080 100644 --- a/src/Kirjalista/test/KirjatTest.java +++ b/src/Kirjalista/test/KirjatTest.java @@ -8,7 +8,7 @@ import Kirjalista.*; /** * Test class made by ComTest - * @version 2025.03.13 19:42:50 // Generated by ComTest + * @version 2025.03.17 16:07:43 // Generated by ComTest * */ @SuppressWarnings({ "all" }) @@ -47,30 +47,34 @@ public class KirjatTest { int k2Id = k2.getId(); kirjat.poista(k2Id); try { - kirjat.hae(k2Id); + kirjat.poista(0); fail("Kirjat: 40 Did not throw NoSuchElementException"); } catch(NoSuchElementException _e_){ _e_.getMessage(); } + try { + kirjat.hae(k2Id); + fail("Kirjat: 41 Did not throw NoSuchElementException"); + } catch(NoSuchElementException _e_){ _e_.getMessage(); } } // Generated by ComTest END // Generated by ComTest BEGIN - /** testLisaa53 */ + /** testLisaa54 */ @Test - public void testLisaa53() { // Kirjat: 53 + public void testLisaa54() { // Kirjat: 54 Kirja kirja = new Kirja(); Kirjat kirjat = new Kirjat(); try { for (int i = 0; i < 8; i++) { kirjat.lisaa(kirja); - assertEquals("From: Kirjat line: 59", i + 1, kirjat.getLkm()); + assertEquals("From: Kirjat line: 60", i + 1, kirjat.getLkm()); } - assertEquals("From: Kirjat line: 61", 8, kirjat.getLkm()); + assertEquals("From: Kirjat line: 62", 8, kirjat.getLkm()); } catch (SailoException e) { System.out.println("Comtest heittaa virheita, jos ei ole trycatchia"); } try { kirjat.lisaa(kirja); - fail("Kirjat: 65 Did not throw SailoException"); + fail("Kirjat: 66 Did not throw SailoException"); } catch(SailoException _e_){ _e_.getMessage(); } } // Generated by ComTest END } \ No newline at end of file