From b8403211c5bd6d12700e0482ce1933a9c58292ec Mon Sep 17 00:00:00 2001 From: laurimaaninka Date: Tue, 21 Apr 2026 21:10:28 +0300 Subject: [PATCH] HASHMAP! Signed-off-by: laurimaaninka --- .../fi/lpam/ruokamanageri/dataluokat/Asiakas.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/fi/lpam/ruokamanageri/dataluokat/Asiakas.java b/src/main/java/fi/lpam/ruokamanageri/dataluokat/Asiakas.java index a2d39f2..bba8399 100644 --- a/src/main/java/fi/lpam/ruokamanageri/dataluokat/Asiakas.java +++ b/src/main/java/fi/lpam/ruokamanageri/dataluokat/Asiakas.java @@ -4,6 +4,8 @@ import fi.lpam.ruokamanageri.gui.virheDialogit.SiirtoVirhe; import java.sql.*; import java.util.ArrayList; +import java.util.HashMap; + @SuppressWarnings("DuplicatedCode") public class Asiakas implements TietokantaOlio { private int id = -1; @@ -117,18 +119,15 @@ public class Asiakas implements TietokantaOlio { sbIDt.append(", ").append(IDt[i]); } try (Connection tietokanta = Tietokanta.haeYhteys()) { - String sql = "select * from asiakkaat where id in (" + sbIDt + ") order by instr('" + sbIDt + "', id)"; + String sql = "select * from asiakkaat where id in (" + sbIDt + ")"; Statement stmt = tietokanta.createStatement(); ResultSet rs = stmt.executeQuery(sql); - ArrayList asiakkaat = parsiResultSet(rs); - ArrayList järjestetyt = new ArrayList(); + HashMap asiakkaat = new HashMap<>(IDt.length); + parsiResultSet(rs).forEach(asiakas -> asiakkaat.put(asiakas.getId(), asiakas)); + ArrayList järjestetyt = new ArrayList<>(asiakkaat.size()); for (int id : IDt) { - for (Asiakas asiakas : asiakkaat) { - if (asiakas.getId() == id) { - järjestetyt.add(asiakas); - } - } + järjestetyt.add(asiakkaat.get(id)); } return järjestetyt; }