Interface BoundedHashable
- All Known Subinterfaces:
AVector<E>, CharSeq, GVector<E>, IntSequence, Sequence<E>
- All Known Implementing Classes:
AbstractCharVector, ArgListPair, ArgListVector, BitVector, Blob, ByteVector, CharBuffer, CharVector, ComposedArray.AsSequence, EmptyList, F32Vector, F64Vector, FlattenedArray, FString, FVector, GeneralArray1, ImmutablePair, IndirectIndexedSeq, IntVector, IString, IString.SubString, LList, LongVector, Nodes.NodeVector, Pair, PairWithPosition, PrimIntegerVector, Range, Range.IntRange, RAPair, S16Vector, S32Vector, S64Vector, S8Vector, ShortVector, SimpleVector, SubSequence, SyntaxForms.PairSyntaxForm, SyntaxForms.PairWithPositionSyntaxForm, Translator.FormStack, U16Vector, U32Vector, U64Vector, U8Vector
public interface BoundedHashable
Supports computing a hash-code while protecting against cycles.
-
Method Summary
Modifier and TypeMethodDescriptionintboundedHash(int seed, int limit) Calculate a hash code for this object.
-
Method Details
-
boundedHash
int boundedHash(int seed, int limit) Calculate a hash code for this object.- Parameters:
seed- The seed is an initial value, or the accumulated hash code from previous elements in a containing object. Using zero as the seed is fine.limit- A limit on the number of sub-elements whose hash we should calculate. This guards against cycles. Any recursive calls should be done with a smaller value of limit, and no recursive calls must be done when the limit is zero.- Returns:
- A well-dispersed hash code.
The result is not compatible with
Object#hashCode.
-