Package com.github.tommyettinger.random
Class LongSequence
java.lang.Object
com.github.tommyettinger.random.LongSequence
A very basic append-only list of
long items.
This is used to store the sequence of results used by a KnownSequenceRandom, and
can be produced by an ArchivalWrapper.-
Field Summary
FieldsModifier and TypeFieldDescriptionlong[]static final LongSequenceThis is a special single instance of a subclass of LongSequence; it doesn't store anything, and can't have itsget(int)method called.int -
Constructor Summary
ConstructorsConstructorDescriptionLongSequence(int initialCapacity) LongSequence(long[] longs) LongSequence(LongSequence other) -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(long item) <T extends CharSequence & Appendable>
TappendSerialized(T sb) <T extends CharSequence & Appendable>
TappendSerialized(T sb, com.github.tommyettinger.digital.Base base) Serializes the current state of this EnhancedRandom and appends it to an Appendable CharSequence (such as a StringBuilder), which may be used bystringDeserialize(String)to load this state at another time.voidclear()copy()booleanlongget(int index) inthashCode()voidresize(int newCapacity) intsize()stringDeserialize(String data) stringDeserialize(String data, com.github.tommyettinger.digital.Base base) stringSerialize(com.github.tommyettinger.digital.Base base) toString()static LongSequencewith(long item) static LongSequencewith(long... items)
-
Field Details
-
items
public long[] items -
size
public int size -
NO_OP
This is a special single instance of a subclass of LongSequence; it doesn't store anything, and can't have itsget(int)method called. Theadd(long)method does nothing here, and won't cause any memory to be allocated. This can be useful to assign to theArchivalWrapper.archivefield when you don't want it to do anything beyond a normal generator; then you can assign a "real" LongSequence when you want to start storing.
-
-
Constructor Details
-
LongSequence
public LongSequence() -
LongSequence
public LongSequence(int initialCapacity) -
LongSequence
-
LongSequence
public LongSequence(long[] longs)
-
-
Method Details
-
get
public long get(int index) Gets thelongitem atindex, which must be at least 0 and less thansize. This does not do any bounds checking beyond a possibleArrayIndexOutOfBoundsExceptionthat will be thrown if you give an index that is negative or greater thanitems.length(the capacity). If you request an index betweensizeanditems.length, this will return 0.- Parameters:
index- which item to retrieve; must be at least 0 and less thansize- Returns:
- the item at the specified index
-
add
public void add(long item) -
size
public int size() -
resize
public void resize(int newCapacity) -
clear
public void clear() -
copy
-
toString
-
equals
-
hashCode
public int hashCode() -
appendSerialized
public <T extends CharSequence & Appendable> T appendSerialized(T sb, com.github.tommyettinger.digital.Base base) Serializes the current state of this EnhancedRandom and appends it to an Appendable CharSequence (such as a StringBuilder), which may be used bystringDeserialize(String)to load this state at another time. May use anyBase;Base.BASE10andBase.BASE16are the most intuitive, butBase.SIMPLE64and especiallyBase.BASE90will be more compact.- Type Parameters:
T- any type that is both a CharSequence and an Appendable, such as StringBuilder, StringBuffer, or CharBuffer- Parameters:
sb- an Appendable CharSequence that will be modifiedbase- which Base to use, from the "digital" library, such asBase.BASE10- Returns:
sb, for chaining
-
appendSerialized
-
stringSerialize
-
stringSerialize
-
stringDeserialize
-
stringDeserialize
-
with
-
with
-