From 3b8c81638f6a85da7f81c06b3005ed094197fc37 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sun, 28 May 2017 00:37:27 +0200 Subject: [PATCH] change lists for sets to increase contains performance Closes #784 --- .../mod/tile/TileEntityLaserRelayEnergy.java | 8 ++++---- .../mod/tile/TileEntityLaserRelayFluids.java | 8 ++++---- .../mod/tile/TileEntityLaserRelayItem.java | 7 ++----- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java index 5cdd11d38..827334d85 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java @@ -31,10 +31,10 @@ import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay{ @@ -143,9 +143,9 @@ public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay{ private int transferEnergyToReceiverInNeed(EnumFacing from, Network network, int maxTransfer, boolean simulate){ int transmitted = 0; //Keeps track of all the Laser Relays and Energy Acceptors that have been checked already to make nothing run multiple times - List alreadyChecked = new ArrayList(); + Set alreadyChecked = new HashSet(); - List relaysThatWork = new ArrayList(); + Set relaysThatWork = new HashSet(); int totalReceiverAmount = 0; for(IConnectionPair pair : network.connections){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java index ee98aab3b..349febfc9 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java @@ -30,10 +30,10 @@ import net.minecraftforge.fluids.capability.IFluidTankProperties; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public class TileEntityLaserRelayFluids extends TileEntityLaserRelay{ @@ -139,9 +139,9 @@ public class TileEntityLaserRelayFluids extends TileEntityLaserRelay{ private int transferFluidToReceiverInNeed(EnumFacing from, Network network, FluidStack stack, boolean doFill){ int transmitted = 0; //Keeps track of all the Laser Relays and Energy Acceptors that have been checked already to make nothing run multiple times - List alreadyChecked = new ArrayList(); + Set alreadyChecked = new HashSet(); - List relaysThatWork = new ArrayList(); + Set relaysThatWork = new HashSet(); int totalReceiverAmount = 0; for(IConnectionPair pair : network.connections){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java index 38a786cab..31c8538e2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java @@ -32,10 +32,7 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import org.cyclops.commoncapabilities.capability.itemhandler.SlotlessItemHandlerConfig; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class TileEntityLaserRelayItem extends TileEntityLaserRelay{ @@ -111,7 +108,7 @@ public class TileEntityLaserRelayItem extends TileEntityLaserRelay{ public void getItemHandlersInNetwork(Network network, List storeList){ //Keeps track of all the Laser Relays and Item Handlers that have been checked already to make nothing run multiple times - List alreadyChecked = new ArrayList(); + Set alreadyChecked = new HashSet(); for(IConnectionPair pair : network.connections){ for(BlockPos relay : pair.getPositions()){