diff --git a/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java b/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java index ae34965..ce2da88 100644 --- a/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java +++ b/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java @@ -20,7 +20,6 @@ package com.samskivert.depot.impl; -import java.util.ArrayList; import java.util.List; import java.sql.Connection; @@ -28,6 +27,8 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import com.google.common.collect.Lists; + import com.samskivert.jdbc.DatabaseLiaison; import com.samskivert.depot.DatabaseException; import com.samskivert.depot.Key; @@ -71,7 +72,7 @@ public class FindAllKeysQuery extends Query> invoke (PersistenceContext ctx, Connection conn, DatabaseLiaison liaison) throws SQLException { - List> keys = new ArrayList>(); + List> keys = Lists.newArrayList(); PreparedStatement stmt = _builder.prepare(conn); ResultSet rs = stmt.executeQuery(); while (rs.next()) { diff --git a/src/main/java/com/samskivert/depot/impl/FindAllQuery.java b/src/main/java/com/samskivert/depot/impl/FindAllQuery.java index 4900253..60f1b95 100644 --- a/src/main/java/com/samskivert/depot/impl/FindAllQuery.java +++ b/src/main/java/com/samskivert/depot/impl/FindAllQuery.java @@ -25,7 +25,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -228,7 +228,7 @@ public abstract class FindAllQuery extends Query invoke (PersistenceContext ctx, Connection conn, DatabaseLiaison liaison) throws SQLException { - List result = new ArrayList(); + List result = Lists.newArrayList(); SQLBuilder builder = ctx.getSQLBuilder(DepotTypes.getDepotTypes(ctx, _select)); builder.newQuery(_select); ResultSet rs = builder.prepare(conn).executeQuery(); @@ -288,7 +288,9 @@ public abstract class FindAllQuery extends Query resolve (Iterable> allKeys, Map, T> entities) { - List result = new ArrayList(); + List result = (allKeys instanceof Collection) + ? Lists.newArrayListWithCapacity(((Collection)allKeys).size()) + : Lists.newArrayList(); for (Key key : allKeys) { T value = entities.get(key); if (value != null) { @@ -310,12 +312,11 @@ public abstract class FindAllQuery extends Query In.MAX_KEYS) { int keyCount = fetchKeys.size(); + Iterator> iter = fetchKeys.iterator(); do { Set> keys = Sets.newHashSet(); - Iterator> iter = fetchKeys.iterator(); - for (int ii = 0; ii < Math.min(keyCount, In.MAX_KEYS); ii++) { + for (int ii = 0, nn = Math.min(keyCount, In.MAX_KEYS); ii < nn; ii++) { keys.add(iter.next()); - iter.remove(); } keyCount -= keys.size(); loadRecords(ctx, conn, keys, entities, origStmt);