From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>

Dont need the overhead of stream operations with locally allocated
comparator object - just scan over the list and find the max.
---
 src/net/sf/freecol/common/model/ProductionType.java | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/net/sf/freecol/common/model/ProductionType.java 
b/src/net/sf/freecol/common/model/ProductionType.java
index 2911fe78bde..068c96bba17 100644
--- a/src/net/sf/freecol/common/model/ProductionType.java
+++ b/src/net/sf/freecol/common/model/ProductionType.java
@@ -344,11 +344,21 @@ public class ProductionType extends FreeColSpecObject {
      */
     public static ProductionType getBestProductionType(GoodsType goodsType,
         Collection<ProductionType> types) {
-        final Comparator<ProductionType> comp = cachingIntComparator(pt -> {
-                AbstractGoods best = pt.getBestOutputFor(goodsType);
-                return (best == null) ? Integer.MIN_VALUE : best.getAmount();
-            });
-        return maximize(types, comp);
+
+        int max_val = 0;
+        ProductionType max_pt = null;
+        for (ProductionType pt : types) {
+            AbstractGoods best = pt.getBestOutputFor(goodsType);
+            if (best == null)
+                continue;
+
+            int x = best.getAmount();
+            if (x > max_val) {
+                max_val = x;
+                max_pt = pt;
+            }
+        }
+        return max_pt;
     }
 
     /**
-- 
2.11.0.rc0.7.gbe5a750


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to