From d21e67166a4566d657c9da43eb13b5aa1a3a3725 Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Tue, 4 Jan 2022 18:16:36 +0800 Subject: Add a bunch of minor optimizations (#848) --- src/main/java/gregtech/api/util/GT_ModHandler.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/main/java/gregtech/api/util') diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index 0d8585994f..1471fd843f 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -52,6 +52,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -1261,7 +1262,7 @@ public class GT_ModHandler { if ((tRecipe instanceof IGT_CraftingRecipe) && !((IGT_CraftingRecipe) tRecipe).isRemovable()) return false; return toRemove.stream().anyMatch(aCrafting -> tRecipe.matches(aCrafting, DW)); }).collect(Collectors.toSet()); - + tList.removeIf(tListToRemove::contains); } @@ -1574,16 +1575,16 @@ public class GT_ModHandler { } ).forEach(tRecipe -> stacks.add(tRecipe.getCraftingResult(aCrafting))); rList = stacks.stream().filter(tOutput -> tOutput.stackSize == 1 && tOutput.getMaxDamage() > 0 && tOutput.getMaxStackSize() == 1).collect(Collectors.toList()); - } else for (int i = 0; i < aList.size(); i++) { - boolean temp = false; + } else for (Iterator iterator = aList.iterator(); iterator.hasNext(); ) { + IRecipe tRecipe = iterator.next(); + boolean matched = false; try { - temp = aList.get(i).matches(aCrafting, DW); + matched = tRecipe.matches(aCrafting, DW); } catch (Throwable e) { e.printStackTrace(GT_Log.err); } - if (temp) { - IRecipe tRecipe = aList.get(i); + if (matched) { ItemStack tOutput = tRecipe.getCraftingResult(aCrafting); if (tOutput == null || tOutput.stackSize <= 0) { @@ -1599,7 +1600,7 @@ public class GT_ModHandler { if (tRecipe instanceof ShapelessOreRecipe) continue; if (tRecipe instanceof IGT_CraftingRecipe) continue; rList.add(GT_Utility.copyOrNull(tOutput)); - aList.remove(i--); + iterator.remove(); } } return rList; -- cgit