diff options
| author | AlexIIL <alexj9@me.com> | 2019-12-25 13:01:21 +0000 |
|---|---|---|
| committer | AlexIIL <alexj9@me.com> | 2019-12-25 13:07:28 +0000 |
| commit | 71971a01ca9ff09d220a49970255069a8efe0046 (patch) | |
| tree | 05cdc2eb302dbeddb47199263297296b0f5eb820 /src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java | |
| parent | a0237130d56e5dd9261ffab7298909c6670153e0 (diff) | |
| download | RoughlyEnoughItems-71971a01ca9ff09d220a49970255069a8efe0046.tar.gz RoughlyEnoughItems-71971a01ca9ff09d220a49970255069a8efe0046.tar.bz2 RoughlyEnoughItems-71971a01ca9ff09d220a49970255069a8efe0046.zip | |
Optimise EntryRegistryImpl.registerEntries by first checking in a set to see if the given entry already exists before adding it, instead of looping through the whole list to see if any of them match.
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java index 5aa6d7072..3778cd5f0 100644 --- a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java +++ b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java @@ -34,6 +34,7 @@ import java.util.Optional; public class ItemEntryStack extends AbstractEntryStack { private ItemStack itemStack; + private int hash = -1; public ItemEntryStack(ItemStack itemStack) { this.itemStack = itemStack; @@ -57,6 +58,7 @@ public class ItemEntryStack extends AbstractEntryStack { @Override public void setAmount(int amount) { itemStack.setCount(amount); + hash = -1; } @Override @@ -114,12 +116,18 @@ public class ItemEntryStack extends AbstractEntryStack { @Override public int hashCode() { - int result = 1; - result = 31 * result + getType().ordinal(); - result = 31 * result + itemStack.getItem().hashCode(); - result = 31 * result + itemStack.getCount(); - result = 31 * result + (itemStack.hasTag() ? itemStack.getTag().hashCode() : 0); - return result; + if (hash == -1) { + int result = 1; + result = 31 * result + getType().ordinal(); + result = 31 * result + itemStack.getItem().hashCode(); + result = 31 * result + itemStack.getCount(); + result = 31 * result + (itemStack.hasTag() ? itemStack.getTag().hashCode() : 0); + hash = result; + if (hash == -1) { + hash = -2; + } + } + return hash; } @Nullable |
