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 bufferSize();
|
||||||
|
|
||||||
int valueCount();
|
int valueCount();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import nu.marginalia.sequence.io.BitReader;
|
|||||||
import nu.marginalia.sequence.io.BitWriter;
|
import nu.marginalia.sequence.io.BitWriter;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.Arrays;
|
import java.util.Objects;
|
||||||
import java.util.StringJoiner;
|
import java.util.StringJoiner;
|
||||||
|
|
||||||
/** A sequence of integers encoded using the Elias Gamma code,
|
/** A sequence of integers encoded using the Elias Gamma code,
|
||||||
@ -102,11 +102,14 @@ public class GammaCodedSequence implements Iterable<Integer>, CodedSequence {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return raw.hashCode();
|
return values().hashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object other) {
|
||||||
return obj instanceof GammaCodedSequence other && Arrays.equals(bytes(), other.bytes());
|
if (other instanceof CodedSequence cs) {
|
||||||
|
return Objects.equals(values(), cs.values());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString() {
|
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 it.unimi.dsi.fastutil.ints.IntList;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class VarintCodedSequence implements CodedSequence {
|
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