private List<KeyValueResult> searchAnyRankAnyChampWithItems(int itemCount, byte[] items) { List<KeyValueResult> results = new ArrayList<>(); stats.forEach( (long key, int value) -> { KeyValueResult result = satisfies(key, itemCount, items); if (result != null) { populate(value, result); results.add(result); } }); return results; }
private List<KeyValueResult> searchWithRankAnyChampAnyItems(byte rank, int itemCount) { List<KeyValueResult> results = new ArrayList<>(); stats.forEach( (long key, int value) -> { if (rankMismatch(rank, key)) { return; } KeyValueResult result = satisfies(key, itemCount); if (result == null) { return; } populate(value, result); results.add(result); }); return results; }
private List<KeyValueResult> searchAnyRankWithChampWithItems( byte champId, int itemCount, byte[] items) { List<KeyValueResult> results = new ArrayList<>(); stats.forEach( (long key, int value) -> { if (champMismatch(champId, key)) { return; } KeyValueResult result = satisfies(key, itemCount, items); if (result == null) { return; } populate(value, result); results.add(result); }); return results; }
private int getValue(byte rank, byte champId, byte[] items) { long key = ByteUtils.encode(rank, champId, items[0], items[1], items[2], items[3], items[4], items[5]); return stats.get(key, Integer.MAX_VALUE); }
public void forEach(LongIntConsumer consumer) { stats.forEach(consumer); }