--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/db/DatabaseLayer.java 2015/02/16 20:44:06 2315 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/db/DatabaseLayer.java 2015/02/17 07:38:24 2316 @@ -14,6 +14,7 @@ import dk.daoas.daoadresseservice.beans.Address; import dk.daoas.daoadresseservice.beans.ExtendedBean; import dk.daoas.daoadresseservice.beans.HundredePctBean; +import dk.daoas.daoadresseservice.util.DeduplicateHelper; public class DatabaseLayer { @@ -32,17 +33,20 @@ List
list = new ArrayList
(2600000);//initial capacity 2.6 mio - Map vejnavne = new HashMap(); + DeduplicateHelper vejnavne = new DeduplicateHelper(); + DeduplicateHelper distributorer = new DeduplicateHelper(); + while (res.next()) { - // Cache String instanserne for vejnavne for at mindske hukommelses forbruget + // Cache String instanserne for vejnavne for at mindske hukommelses forbruget String dbVejnavn = res.getString(2); - String vejnavn = vejnavne.get(dbVejnavn); - if ( vejnavn == null ) { - vejnavn = dbVejnavn; - vejnavne.put(vejnavn, vejnavn); - } + String vejnavn = vejnavne.getInstance(dbVejnavn); + + // Cache String instanserne for distributor for at mindske hukommelses forbruget + // (De-dubblicate) + String dbDistributor = res.getString(2); + String distributor = distributorer.getInstance(dbDistributor); Address a = new Address(); a.id = res.getInt(1); @@ -53,7 +57,7 @@ a.vejkode = res.getInt(6); a.postnr = res.getInt(7); a.gadeid = res.getLong(8); - a.distributor = res.getString(9); + a.distributor = distributor; a.dbkBane = res.getInt(10); a.koreliste = res.getString(11); a.rute = res.getString(12);