Optimize containsAllItemIds
This commit is contained in:
@@ -27,6 +27,7 @@ package net.runelite.client.util;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@@ -84,7 +85,23 @@ public class ItemUtil
|
|||||||
*/
|
*/
|
||||||
public static boolean containsAllItemIds(Item[] itemArray, Set<Integer> ids)
|
public static boolean containsAllItemIds(Item[] itemArray, Set<Integer> ids)
|
||||||
{
|
{
|
||||||
return toGameItemMap(itemArray, ids).size() == ids.size();
|
final Set<Integer> found = new HashSet<>();
|
||||||
|
for (Item i : itemArray)
|
||||||
|
{
|
||||||
|
final int id = i.getId();
|
||||||
|
if (ids.contains(id))
|
||||||
|
{
|
||||||
|
found.add(id);
|
||||||
|
// Early break if possible
|
||||||
|
if (found.size() == ids.size())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return found.size() == ids.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user