mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 05:18:58 +00:00
(coded-sequence) Add equals and hashCode to VCS
This commit is contained in:
parent
50ec922c2b
commit
35f49bbb60
@ -19,4 +19,5 @@ public interface CodedSequence {
|
||||
int bufferSize();
|
||||
|
||||
int valueCount();
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import nu.marginalia.sequence.io.BitReader;
|
||||
import nu.marginalia.sequence.io.BitWriter;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
/** A sequence of integers encoded using the Elias Gamma code,
|
||||
@ -102,11 +102,14 @@ public class GammaCodedSequence implements Iterable<Integer>, CodedSequence {
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return raw.hashCode();
|
||||
return values().hashCode();
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof GammaCodedSequence other && Arrays.equals(bytes(), other.bytes());
|
||||
public boolean equals(Object other) {
|
||||
if (other instanceof CodedSequence cs) {
|
||||
return Objects.equals(values(), cs.values());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
@ -255,4 +258,6 @@ public class GammaCodedSequence implements Iterable<Integer>, CodedSequence {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import it.unimi.dsi.fastutil.ints.IntIterator;
|
||||
import it.unimi.dsi.fastutil.ints.IntList;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Objects;
|
||||
|
||||
public class VarintCodedSequence implements CodedSequence {
|
||||
|
||||
@ -242,4 +243,15 @@ public class VarintCodedSequence implements CodedSequence {
|
||||
|
||||
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return values().hashCode();
|
||||
}
|
||||
|
||||
public boolean equals(Object other) {
|
||||
if (other instanceof CodedSequence cs) {
|
||||
return Objects.equals(values(), cs.values());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user