Package com.github.tommyettinger.ds
Class DoubleList
java.lang.Object
com.github.tommyettinger.ds.DoubleList
- All Implemented Interfaces:
Arrangeable,Ordered.OfDouble,PrimitiveCollection<Double>,PrimitiveCollection.OfDouble
- Direct Known Subclasses:
DoubleBag,DoubleDeque
public class DoubleList
extends Object
implements PrimitiveCollection.OfDouble, Ordered.OfDouble, Arrangeable
A resizable, insertion-ordered double list. Primitive-backed, so it avoids the boxing that occurs with an ArrayList of Double.
This tries to imitate most of the
List interface, though it can't implement it without boxing its items.
Has a primitive iterator accessible via iterator().-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classADoubleIterator, plusListIteratormethods, over the elements of a DoubleList.Nested classes/interfaces inherited from interface com.github.tommyettinger.ds.Arrangeable
Arrangeable.ArrangeableList<T>Nested classes/interfaces inherited from interface com.github.tommyettinger.ds.PrimitiveCollection
PrimitiveCollection.OfBoolean, PrimitiveCollection.OfByte, PrimitiveCollection.OfChar, PrimitiveCollection.OfDouble, PrimitiveCollection.OfFloat, PrimitiveCollection.OfInt, PrimitiveCollection.OfLong, PrimitiveCollection.OfShort -
Field Summary
FieldsModifier and TypeFieldDescriptiondouble[]protected DoubleList.DoubleListIteratorprotected DoubleList.DoubleListIteratorprotected int -
Constructor Summary
ConstructorsConstructorDescriptionCreates an ordered list with a capacity of 10.DoubleList(boolean ordered, double[] array, int startIndex, int count) Deprecated.DoubleList(boolean ordered, int capacity) Deprecated.DoubleList is always ordered; for an unordered list useDoubleBagDoubleList(double[] array) Creates a new list containing the elements in the specified array.DoubleList(double[] array, int startIndex, int count) Creates a new list containing the elements in the specified array.DoubleList(int capacity) Creates an ordered list with the specified capacity.DoubleList(DoubleList list) Creates a new list containing the elements in the given list.DoubleList(Ordered.OfDouble other) Copies the given Ordered.OfDouble into a new DoubleList.DoubleList(Ordered.OfDouble other, int offset, int count) Creates a new list by copyingcountitems from the given Ordered, starting atoffsetin that Ordered, into this.Creates a new list containing the items in the specified PrimitiveCollection.OfDouble.DoubleList(DoubleIterator coll) Creates a new instance containing the items in the specified iterator. -
Method Summary
Modifier and TypeMethodDescriptionbooleanadd(double value) voidadd(double value1, double value2) voidadd(double value1, double value2, double value3) voidadd(double value1, double value2, double value3, double value4) booleanaddAll(double... array) booleanaddAll(double[] array, int offset, int length) booleanaddAll(int insertionIndex, Ordered.OfDouble other, int offset, int count) Adds up tocountitems, starting fromoffset, in the Ordered.OfDoubleotherto this list, inserting starting atinsertionIndexin the iteration order.booleanaddAll(DoubleList list) booleanaddAll(DoubleList list, int offset, int count) booleanaddAll(Ordered.OfDouble other, int offset, int count) Adds up tocountitems, starting fromoffset, in the Ordered.OfDoubleotherto this list, inserting at the end of the iteration order.voidclear()Effectively removes all items from this DoubleList.booleancontains(double value) booleancontainsAll(DoubleList other) Returns true if this DoubleList contains, at least once, every item inother; otherwise returns false.div(double value) Divides each item in this DoubleList byvalue, stores it in this and returns it.voiddiv(int index, double value) booleanduplicateRange(int index, int count) Inserts the specified number of items at the specified index.double[]ensureCapacity(int additionalCapacity) Increases the size of the backing array to accommodate the specified number of additional items.booleanbooleanCompares double items with the given tolerance for error.doublefirst()Returns the first item.doubleget(int index) inthashCode()intindexOf(double value) Returns the first index in this list that contains the specified value, or -1 if it is not present.voidinsert(int index, double value) booleanisEmpty()Returns true if the list is empty.iterator()Returns a Java 8 primitive iterator over the int items in this DoubleList.booleanReturns true if this implementation retains order, which it does.intlastIndexOf(double value) Returns the last index in this list that contains the specified value, or -1 if it is not present.minus(double value) Takes each item in this DoubleList and subtractsvalue, stores it in this and returns it.voidminus(int index, double value) booleannotEmpty()Returns true if the list has one or more items, or false otherwise.order()Returns this DoubleList, since it is its own order.static DoubleListCallsparse(String, String, boolean)with brackets set to false.static DoubleListCreates a new collection and fills it by callingPrimitiveCollection.OfDouble.addLegible(String, String, int, int)on either all ofstr(ifbracketsis false) orstrwithout its first and last chars (ifbracketsis true).static DoubleListCreates a new collection and fills it by callingPrimitiveCollection.OfDouble.addLegible(String, String, int, int)with the given four parameters as-is.doublepeek()Returns the last item.plus(double value) Addsvalueto each item in this DoubleList, stores it in this and returns it.voidplus(int index, double value) doublepop()Removes and returns the last item.doubleReturns a random item from the list, or zero if the list is empty.rem(double value) Gets the remainder of each item in this DoubleList withvalue, stores it in this and returns it.voidrem(int index, double value) booleanremove(double value) Removes the first occurrence ofvaluefrom this DoubleList, returning true if anything was removed.booleanRemoves from this DoubleList all occurrences of any elements contained in the specified collection.doubleremoveAt(int index) Removes and returns the item at the specified index.booleanRemoves from this DoubleList element-wise occurrences of elements contained in the specified collection.voidremoveRange(int start, int end) Removes the items between the specified start index, inclusive, and end index, exclusive.intreplaceAll(double find, double replace) Replaces every occurrence offindwithreplace.intreplaceAll(double find, double replace, double tolerance) Replaces every occurrence offindwithreplace.voidreplaceAll(com.github.tommyettinger.function.DoubleToDoubleFunction operator) Replaces each element of this list with the result of applying the given operator to that element.intreplaceAllNaN(double replace) Replaces every occurrence ofNaNwithreplace.booleanreplaceFirst(double find, double replace) Replaces the first occurrence offindwithreplace.booleanreplaceFirst(double find, double replace, double tolerance) Replaces the first occurrence offindwithreplace.booleanreplaceFirstNaN(double replace) Replaces the first occurrence ofNaNwithreplace.protected double[]resize(int newSize) booleanRemoves all items from this DoubleList that are not present somewhere inother, any number of times.voidreverse()Reverses the order of this Ordered in-place.voidset(int index, double value) double[]setSize(int newSize) Sets the list size, leaving any values beyond the current size undefined.double[]shrink()Reduces the size of the backing array to the size of the actual items.voidPseudo-randomly shuffles the order of this Ordered in-place.intsize()Returns the number of elements in this Arrangeable.voidsort()Sorts this entire collection usingArrays.sort(double[], int, int)in ascending order.voidsort(int from, int to) UsesArrays.sort(double[], int, int)to sort a (clamped) subrange of this collection in ascending order.voidsort(int from, int to, DoubleComparator c) Sorts the specified range of elements according to the order induced by the specified comparator using mergesort, orArrays.sort(double[], int, int)ifcis null.voidSorts all elements according to the order induced by the specified comparator usingDoubleComparators.sort(double[], int, int, DoubleComparator).voidswap(int first, int second) Switches the ordering of positionsfirstandsecond, without changing any items beyond that.times(double value) Multiplies each item in this DoubleList byvalue, stores it in this and returns it.voidtimes(int index, double value) double[]toArray()Allocates a new double array withsizeelements and fills it with the items in this.double[]toArray(double[] array) Ifarray.lengthat least equal tosize(), this copies the contents of this intoarrayand returns it; otherwise, it allocates a new double array that can fit all the items in this, and proceeds to copy into that and return that.toString()voidvoidtruncate(int newSize) Reduces the size of the list to the specified size.static DoubleListwith()Constructs an empty list.static DoubleListwith(double item) Creates a new DoubleList that holds only the given item, but can be resized.static DoubleListwith(double... varargs) Creates a new DoubleList that holds only the given items, but can be resized.static DoubleListwith(double item0, double item1) Creates a new DoubleList that holds only the given items, but can be resized.static DoubleListwith(double item0, double item1, double item2) Creates a new DoubleList that holds only the given items, but can be resized.static DoubleListwith(double item0, double item1, double item2, double item3) Creates a new DoubleList that holds only the given items, but can be resized.static DoubleListwith(double item0, double item1, double item2, double item3, double item4) Creates a new DoubleList that holds only the given items, but can be resized.static DoubleListwith(double item0, double item1, double item2, double item3, double item4, double item5) Creates a new DoubleList that holds only the given items, but can be resized.static DoubleListwith(double item0, double item1, double item2, double item3, double item4, double item5, double item6) Creates a new DoubleList that holds only the given items, but can be resized.static DoubleListwith(double item0, double item1, double item2, double item3, double item4, double item5, double item6, double item7) Creates a new DoubleList that holds only the given items, but can be resized.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.github.tommyettinger.ds.Arrangeable
rearrange, shuffleMethods inherited from interface com.github.tommyettinger.ds.Ordered.OfDouble
getOrderType, random, selectRanked, selectRankedIndexMethods inherited from interface com.github.tommyettinger.ds.PrimitiveCollection.OfDouble
addAll, addAll, addDense, addDense, addLegible, addLegible, addVarargs, appendTo, appendTo, containsAll, containsAll, containsAll, containsAll, containsAny, containsAny, containsAny, containsAny, denseAppendTo, forEach, removeAll, removeAll, removeAll, removeEach, removeEach, removeEach, removeIf, retainAll, retainAll, toDenseString, toDenseString, toString, toString, toString
-
Field Details
-
items
public double[] items -
size
protected int size -
iterator1
-
iterator2
-
-
Constructor Details
-
DoubleList
public DoubleList()Creates an ordered list with a capacity of 10. -
DoubleList
public DoubleList(int capacity) Creates an ordered list with the specified capacity.- Parameters:
capacity- Any elements added beyond this will cause the backing array to be grown.
-
DoubleList
Deprecated.DoubleList is always ordered; for an unordered list useDoubleBagCreates an ordered list with the specified capacity.- Parameters:
ordered- ignored; for an unordered list useDoubleBagcapacity- Any elements added beyond this will cause the backing array to be grown.
-
DoubleList
Creates a new list containing the elements in the given list. The new list will be ordered. The capacity is set to the number of elements, so any subsequent elements added will cause the backing array to be grown.- Parameters:
list- another DoubleList (or DoubleBag) to copy from
-
DoubleList
public DoubleList(double[] array) Creates a new list containing the elements in the specified array. The capacity is set to the number of elements, so any subsequent elements added will cause the backing array to be grown.- Parameters:
array- a double array to copy from
-
DoubleList
public DoubleList(double[] array, int startIndex, int count) Creates a new list containing the elements in the specified array. The capacity is set to the number of elements, so any subsequent elements added will cause the backing array to be grown.- Parameters:
array- a non-null double array to add to this liststartIndex- the first index inarrayto usecount- how many items to use fromarray
-
DoubleList
Deprecated.DoubleList is always ordered; for an unordered list useDoubleBagCreates a new list containing the elements in the specified array. The capacity is set to the number of elements, so any subsequent elements added will cause the backing array to be grown.- Parameters:
ordered- ignored; for an unordered list useDoubleBagarray- a non-null double array to add to this liststartIndex- the first index inarrayto usecount- how many items to use fromarray
-
DoubleList
Creates a new list containing the items in the specified PrimitiveCollection.OfDouble.- Parameters:
coll- a primitive collection that will have its contents added to this
-
DoubleList
Creates a new instance containing the items in the specified iterator.- Parameters:
coll- an iterator that will have its remaining contents added to this
-
DoubleList
Copies the given Ordered.OfDouble into a new DoubleList.- Parameters:
other- another Ordered.OfDouble that will have its contents copied into this
-
DoubleList
Creates a new list by copyingcountitems from the given Ordered, starting atoffsetin that Ordered, into this.- Parameters:
other- another Ordered.OfDoubleoffset- the first index in other's ordering to draw an item fromcount- how many items to copy from other
-
-
Method Details
-
keepsOrder
public boolean keepsOrder()Returns true if this implementation retains order, which it does.- Returns:
- true
-
size
public int size()Description copied from interface:ArrangeableReturns the number of elements in this Arrangeable. Often this is shared withCollection.size(), but isn't always.- Specified by:
sizein interfaceArrangeable- Specified by:
sizein interfacePrimitiveCollection<Double>- Returns:
- the number of elements in this Arrangeable
-
add
public boolean add(double value) - Specified by:
addin interfacePrimitiveCollection.OfDouble
-
add
public void add(double value1, double value2) -
add
public void add(double value1, double value2, double value3) -
add
public void add(double value1, double value2, double value3, double value4) -
addAll
-
addAll
-
addAll
Adds up tocountitems, starting fromoffset, in the Ordered.OfDoubleotherto this list, inserting at the end of the iteration order.- Parameters:
other- a non-nullOrdered.OfDoubleoffset- the first index inotherto usecount- how many indices inotherto use- Returns:
- true if this is modified by this call, as
addAll(DoubleList)does
-
addAll
Adds up tocountitems, starting fromoffset, in the Ordered.OfDoubleotherto this list, inserting starting atinsertionIndexin the iteration order.- Parameters:
insertionIndex- where to insert into the iteration orderother- a non-nullOrdered.OfDoubleoffset- the first index inotherto usecount- how many indices inotherto use- Returns:
- true if this is modified by this call, as
addAll(DoubleList)does
-
addAll
public boolean addAll(double... array) - Specified by:
addAllin interfacePrimitiveCollection.OfDouble
-
addAll
public boolean addAll(double[] array, int offset, int length) - Specified by:
addAllin interfacePrimitiveCollection.OfDouble
-
get
public double get(int index) -
set
public void set(int index, double value) -
plus
public void plus(int index, double value) -
plus
Addsvalueto each item in this DoubleList, stores it in this and returns it. The presence of this method allows Kotlin code to use the+operator (though it shouldn't be used more than once in an expression, because this method modifies this DoubleList).- Parameters:
value- each item in this will be assigneditem + value- Returns:
- this for chaining and Kotlin compatibility
-
times
public void times(int index, double value) -
times
Multiplies each item in this DoubleList byvalue, stores it in this and returns it. The presence of this method allows Kotlin code to use the*operator (though it shouldn't be used more than once in an expression, because this method modifies this DoubleList).- Parameters:
value- each item in this will be assigneditem * value- Returns:
- this for chaining and Kotlin compatibility
-
minus
public void minus(int index, double value) -
minus
Takes each item in this DoubleList and subtractsvalue, stores it in this and returns it. This is just a minor convenience in Java, but the presence of this method allows Kotlin code to use the-operator (though it shouldn't be used more than once in an expression, because this method modifies this DoubleList).- Parameters:
value- each item in this will be assigneditem - value- Returns:
- this for chaining and Kotlin compatibility
-
div
public void div(int index, double value) -
div
Divides each item in this DoubleList byvalue, stores it in this and returns it. The presence of this method allows Kotlin code to use the/operator (though it shouldn't be used more than once in an expression, because this method modifies this DoubleList).- Parameters:
value- each item in this will be assigneditem / value- Returns:
- this for chaining and Kotlin compatibility
-
rem
public void rem(int index, double value) -
rem
Gets the remainder of each item in this DoubleList withvalue, stores it in this and returns it. The presence of this method allows Kotlin code to use the%operator (though it shouldn't be used more than once in an expression, because this method modifies this DoubleList).- Parameters:
value- each item in this will be assigneditem % value- Returns:
- this for chaining and Kotlin compatibility
-
insert
public void insert(int index, double value) -
duplicateRange
public boolean duplicateRange(int index, int count) Inserts the specified number of items at the specified index. The new items will have values equal to the values at those indices before the insertion, and the previous values will be pushed to after the duplicated range.- Parameters:
index- the first index to duplicatecount- how many items to duplicate
-
order
Returns this DoubleList, since it is its own order. This is only here to satisfy theOrdered.OfDoubleinterface.- Specified by:
orderin interfaceOrdered.OfDouble- Returns:
- this DoubleList
-
swap
public void swap(int first, int second) Description copied from interface:Ordered.OfDoubleSwitches the ordering of positionsfirstandsecond, without changing any items beyond that.- Specified by:
swapin interfaceArrangeable- Specified by:
swapin interfaceOrdered.OfDouble- Parameters:
first- the first position, must not be negative and must be less thanArrangeable.size()second- the second position, must not be negative and must be less thanArrangeable.size()
-
contains
public boolean contains(double value) - Specified by:
containsin interfacePrimitiveCollection.OfDouble
-
containsAll
Returns true if this DoubleList contains, at least once, every item inother; otherwise returns false.- Parameters:
other- an DoubleList- Returns:
- true if this contains every item in
other, otherwise false
-
indexOf
public int indexOf(double value) Returns the first index in this list that contains the specified value, or -1 if it is not present.- Parameters:
value- a double value to search for- Returns:
- the first index of the given value, or -1 if it is not present
-
lastIndexOf
public int lastIndexOf(double value) Returns the last index in this list that contains the specified value, or -1 if it is not present.- Parameters:
value- a double value to search for- Returns:
- the last index of the given value, or -1 if it is not present
-
remove
public boolean remove(double value) Removes the first occurrence ofvaluefrom this DoubleList, returning true if anything was removed. Otherwise, this returns false.- Specified by:
removein interfacePrimitiveCollection.OfDouble- Parameters:
value- the value to (attempt to) remove- Returns:
- true if a value was removed, false if the DoubleList is unchanged
-
removeAt
public double removeAt(int index) Removes and returns the item at the specified index. Note that this is equivalent toList.remove(int), but can't have that name because we also haveremove(double)that removes a value, rather than an index.- Parameters:
index- the index of the item to remove and return- Returns:
- the removed item
-
removeRange
public void removeRange(int start, int end) Removes the items between the specified start index, inclusive, and end index, exclusive. Note that this takes different arguments than some other range-related methods; this needs a start index and an end index, rather than a count of items. This matches the behavior in the JDK collections.- Specified by:
removeRangein interfaceOrdered.OfDouble- Parameters:
start- the first index to remove, inclusiveend- the last index (after what should be removed), exclusive
-
removeAll
Removes from this DoubleList all occurrences of any elements contained in the specified collection.- Specified by:
removeAllin interfacePrimitiveCollection.OfDouble- Parameters:
c- a primitive collection of int items to remove fully, such as another DoubleList or a DoubleDeque- Returns:
- true if this list was modified.
-
removeEach
Removes from this DoubleList element-wise occurrences of elements contained in the specified collection. Note that if a value is present more than once in this DoubleList, only one of those occurrences will be removed for each occurrence of that value inc. Ifchas the same contents as this DoubleList or has additional items, then removing each ofcwill clear this.- Specified by:
removeEachin interfacePrimitiveCollection.OfDouble- Parameters:
c- a primitive collection of int items to remove one-by-one, such as another DoubleList or a DoubleDeque- Returns:
- true if this list was modified.
-
retainAll
Removes all items from this DoubleList that are not present somewhere inother, any number of times.- Specified by:
retainAllin interfacePrimitiveCollection.OfDouble- Parameters:
other- a PrimitiveCollection.OfDouble that contains the items that this should keep, whenever present- Returns:
- true if this DoubleList changed as a result of this call, otherwise false
-
replaceAll
public void replaceAll(com.github.tommyettinger.function.DoubleToDoubleFunction operator) Replaces each element of this list with the result of applying the given operator to that element.- Parameters:
operator- a DoubleToDoubleFunction (a functional interface defined in funderby)
-
replaceFirst
public boolean replaceFirst(double find, double replace) Replaces the first occurrence offindwithreplace. Returns true if it performed the replacement, or false if there was nothing to replace. This also returns false if find and replace are the same.- Parameters:
find- the item to search forreplace- the item to replacefindwith, if possible- Returns:
- true if this changed, or false otherwise
-
replaceAll
public int replaceAll(double find, double replace) Replaces every occurrence offindwithreplace. Returns the number of changed items, which is 0 if nothing was found or in the case that find and replace are the same.- Parameters:
find- the item to search forreplace- the item to replacefindwith, if possible- Returns:
- the number of replacements that occurred; 0 if nothing was found or replaced
-
replaceFirst
public boolean replaceFirst(double find, double replace, double tolerance) Replaces the first occurrence offindwithreplace. Returns true if it performed the replacement, or false if there was nothing to replace. This also returns false if find and replace are the same. Takes atoleranceto permit some doubleing-point imprecision in the search.- Parameters:
find- the item to search forreplace- the item to replacefindwith, if possible- Returns:
- true if this changed, or false otherwise
-
replaceAll
public int replaceAll(double find, double replace, double tolerance) Replaces every occurrence offindwithreplace. Returns the number of changed items, which is 0 if nothing was found or in the case that find and replace are the same. Takes atoleranceto permit some doubleing-point imprecision in the search.- Parameters:
find- the item to search forreplace- the item to replacefindwith, if possibletolerance- how much an item can be different fromfindand still be replaced- Returns:
- the number of replacements that occurred; 0 if nothing was found or replaced
-
replaceFirstNaN
public boolean replaceFirstNaN(double replace) Replaces the first occurrence ofNaNwithreplace. Returns true if it performed the replacement, or false if there was nothing to replace.- Parameters:
replace- the item to replaceNaNwith, if possible- Returns:
- true if this changed, or false otherwise
-
replaceAllNaN
public int replaceAllNaN(double replace) Replaces every occurrence ofNaNwithreplace. Returns the number of changed items, which is 0 if nothing was found.- Parameters:
replace- the item to replaceNaNwith, if possible- Returns:
- the number of replacements that occurred; 0 if nothing was found or replaced
-
pop
public double pop()Removes and returns the last item.- Returns:
- the last item, removed from this
-
peek
public double peek()Returns the last item.- Returns:
- the last item, without modifying this
-
first
public double first()Returns the first item.- Specified by:
firstin interfacePrimitiveCollection.OfDouble- Returns:
- the first item, without modifying this
-
notEmpty
public boolean notEmpty()Returns true if the list has one or more items, or false otherwise.- Specified by:
notEmptyin interfacePrimitiveCollection<Double>- Returns:
- true if the list has one or more items, or false otherwise
-
isEmpty
public boolean isEmpty()Returns true if the list is empty.- Specified by:
isEmptyin interfacePrimitiveCollection<Double>- Returns:
- true if the list is empty, or false if it has any items
-
clear
public void clear()Effectively removes all items from this DoubleList. This is done simply by setting size to 0; because adoubleitem isn't a reference, it doesn't need to be set to null.- Specified by:
clearin interfacePrimitiveCollection<Double>
-
shrink
public double[] shrink()Reduces the size of the backing array to the size of the actual items. This is useful to release memory when many items have been removed, or if it is known that more items will not be added.- Returns:
items; this will be a different reference if this resized
-
trimToSize
public void trimToSize() -
ensureCapacity
public double[] ensureCapacity(int additionalCapacity) Increases the size of the backing array to accommodate the specified number of additional items. Useful before adding many items to avoid multiple backing array resizes.- Returns:
items; this will be a different reference if this resized
-
setSize
public double[] setSize(int newSize) Sets the list size, leaving any values beyond the current size undefined.- Returns:
items; this will be a different reference if this resized to a larger capacity
-
resize
protected double[] resize(int newSize) -
sort
public void sort()Sorts this entire collection usingArrays.sort(double[], int, int)in ascending order. -
sort
public void sort(int from, int to) UsesArrays.sort(double[], int, int)to sort a (clamped) subrange of this collection in ascending order.- Parameters:
from- the index of the first element (inclusive) to be sortedto- the index of the last element (exclusive) to be sorted
-
sort
Sorts all elements according to the order induced by the specified comparator usingDoubleComparators.sort(double[], int, int, DoubleComparator). Ifcis null, this instead delegates tosort(), which usesArrays.sort(double[]), and does not always run in-place.This sort is guaranteed to be stable: equal elements will not be reordered as a result of the sort. The sorting algorithm is an in-place mergesort that is significantly slower than a standard mergesort, as its running time is O(n (log n)2), but it does not allocate additional memory; as a result, it can be used as a generic sorting algorithm.
- Specified by:
sortin interfaceOrdered.OfDouble- Parameters:
c- the comparator to determine the order of the DoubleList
-
sort
Sorts the specified range of elements according to the order induced by the specified comparator using mergesort, orArrays.sort(double[], int, int)ifcis null. This purely usesDoubleComparators.sort(double[], int, int, DoubleComparator), and you can see its docs for more information. This clampsfromandtoto the valid range.- Parameters:
from- the index of the first element (inclusive) to be sortedto- the index of the last element (exclusive) to be sortedc- the comparator to determine the order of the DoubleList
-
reverse
public void reverse()Description copied from interface:Ordered.OfDoubleReverses the order of this Ordered in-place.- Specified by:
reversein interfaceArrangeable- Specified by:
reversein interfaceOrdered.OfDouble
-
shuffle
Description copied from interface:Ordered.OfDoublePseudo-randomly shuffles the order of this Ordered in-place. You can seedrng, the random number generator, with an identical seed to reproduce a shuffle on two Ordered with the sameArrangeable.size().- Specified by:
shufflein interfaceArrangeable- Specified by:
shufflein interfaceOrdered.OfDouble- Parameters:
random- anyRandomclass, such as one from juniper
-
truncate
public void truncate(int newSize) Reduces the size of the list to the specified size. If the list is already smaller than the specified size, no action is taken. -
random
Returns a random item from the list, or zero if the list is empty.- Specified by:
randomin interfaceOrdered.OfDouble- Parameters:
random- aRandomor a subclass, such as any from juniper- Returns:
- a randomly selected item from this, or
0if this is empty
-
toArray
public double[] toArray()Allocates a new double array withsizeelements and fills it with the items in this.- Specified by:
toArrayin interfacePrimitiveCollection.OfDouble- Returns:
- a new double array with the same contents as this
-
toArray
public double[] toArray(double[] array) Ifarray.lengthat least equal tosize(), this copies the contents of this intoarrayand returns it; otherwise, it allocates a new double array that can fit all the items in this, and proceeds to copy into that and return that.- Specified by:
toArrayin interfacePrimitiveCollection.OfDouble- Parameters:
array- a double array that will be modified if it can fitsize()items- Returns:
array, if it had sufficient size, or a new array otherwise, either with a copy of this
-
hashCode
public int hashCode()- Specified by:
hashCodein interfacePrimitiveCollection<Double>- Overrides:
hashCodein classObject
-
equals
- Specified by:
equalsin interfacePrimitiveCollection<Double>- Overrides:
equalsin classObject
-
equals
Compares double items with the given tolerance for error. -
toString
-
iterator
Returns a Java 8 primitive iterator over the int items in this DoubleList. Iterates in order ifkeepsOrder()returns true, which it does for a DoubleList but not a DoubleBag.
This will reuse one of two iterators in this DoubleList; this does not allow nested iteration. UseDoubleListIterator(DoubleList)to nest iterators.- Specified by:
iteratorin interfacePrimitiveCollection<Double>- Specified by:
iteratorin interfacePrimitiveCollection.OfDouble- Returns:
- a
DoubleIterator; use its nextDouble() method instead of next()
-
with
Constructs an empty list. This is usually less useful than just using the constructor, but can be handy in some code-generation scenarios when you don't know how many arguments you will have.- Returns:
- a new list containing nothing
-
with
Creates a new DoubleList that holds only the given item, but can be resized.- Parameters:
item- a double item- Returns:
- a new DoubleList that holds the given item
-
with
Creates a new DoubleList that holds only the given items, but can be resized.- Parameters:
item0- a double itemitem1- a double item- Returns:
- a new DoubleList that holds the given items
-
with
Creates a new DoubleList that holds only the given items, but can be resized.- Parameters:
item0- a double itemitem1- a double itemitem2- a double item- Returns:
- a new DoubleList that holds the given items
-
with
Creates a new DoubleList that holds only the given items, but can be resized.- Parameters:
item0- a double itemitem1- a double itemitem2- a double itemitem3- a double item- Returns:
- a new DoubleList that holds the given items
-
with
Creates a new DoubleList that holds only the given items, but can be resized.- Parameters:
item0- a double itemitem1- a double itemitem2- a double itemitem3- a double itemitem4- a double item- Returns:
- a new DoubleList that holds the given items
-
with
public static DoubleList with(double item0, double item1, double item2, double item3, double item4, double item5) Creates a new DoubleList that holds only the given items, but can be resized.- Parameters:
item0- a double itemitem1- a double itemitem2- a double itemitem3- a double itemitem4- a double itemitem5- a double item- Returns:
- a new DoubleList that holds the given items
-
with
public static DoubleList with(double item0, double item1, double item2, double item3, double item4, double item5, double item6) Creates a new DoubleList that holds only the given items, but can be resized.- Parameters:
item0- a double itemitem1- a double itemitem2- a double itemitem3- a double itemitem4- a double itemitem5- a double itemitem6- a double item- Returns:
- a new DoubleList that holds the given items
-
with
public static DoubleList with(double item0, double item1, double item2, double item3, double item4, double item5, double item6, double item7) Creates a new DoubleList that holds only the given items, but can be resized.- Parameters:
item0- a double itemitem1- a double itemitem2- a double itemitem3- a double itemitem4- a double itemitem5- a double itemitem6- a double item- Returns:
- a new DoubleList that holds the given items
-
with
Creates a new DoubleList that holds only the given items, but can be resized. This overload will only be used when an array is supplied and the type of the items requested is the component type of the array, or if varargs are used and there are 9 or more arguments.- Parameters:
varargs- a double varargs or double array; remember that varargs allocate- Returns:
- a new DoubleList that holds the given items
-
parse
Callsparse(String, String, boolean)with brackets set to false.- Parameters:
str- a String that will be parsed in fulldelimiter- the delimiter between items in str- Returns:
- a new collection parsed from str
-
parse
Creates a new collection and fills it by callingPrimitiveCollection.OfDouble.addLegible(String, String, int, int)on either all ofstr(ifbracketsis false) orstrwithout its first and last chars (ifbracketsis true). Each item is expected to be separated bydelimiter.- Parameters:
str- a String that will be parsed in full (depending on brackets)delimiter- the delimiter between items in strbrackets- if true, the first and last chars in str will be ignored- Returns:
- a new collection parsed from str
-
parse
Creates a new collection and fills it by callingPrimitiveCollection.OfDouble.addLegible(String, String, int, int)with the given four parameters as-is.- Parameters:
str- a String that will have the given section parseddelimiter- the delimiter between items in stroffset- the first position to parse in str, inclusivelength- how many chars to parse, starting from offset- Returns:
- a new collection parsed from str
-
DoubleBag