diff --git a/code/index/java/nu/marginalia/index/results/model/ids/TermIdList.java b/code/index/java/nu/marginalia/index/results/model/ids/TermIdList.java index f25ab1b9..1428ec38 100644 --- a/code/index/java/nu/marginalia/index/results/model/ids/TermIdList.java +++ b/code/index/java/nu/marginalia/index/results/model/ids/TermIdList.java @@ -3,7 +3,6 @@ package nu.marginalia.index.results.model.ids; import it.unimi.dsi.fastutil.longs.LongArrayList; import java.util.Arrays; -import java.util.Objects; import java.util.stream.LongStream; public final class TermIdList { @@ -29,6 +28,24 @@ public final class TermIdList { return array; } + public long at(int i) { + return array[i]; + } + + public boolean contains(long id) { + // array is typically small and unsorted, so linear search is fine + for (int i = 0; i < array.length; i++) { + if (array[i] == id) { + return true; + } + } + return false; + } + + public int indexOf(long id) { + return Arrays.binarySearch(array, id); + } + @Override public boolean equals(Object obj) { if (obj == this) return true;