DoubleArray
An array of doubles. When targeting the JVM, instances of this class are represented as double[]
.
Constructors
Properties
size
Returns the number of elements in the array.
val size: Int
Functions
get
Returns the array element at the given index. This method can be called using the index operator.
operator fun get(index: Int): Double
iterator
Creates an iterator over the elements of the array.
operator fun iterator(): DoubleIterator
Extension Properties
indices
Returns the range of valid indices for the array.
val DoubleArray.indices: IntRange
lastIndex
Returns the last valid index for the array.
val DoubleArray.lastIndex: Int
Extension Functions
all
Returns true
if all elements match the given predicate.
fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean
any
Returns true
if array has at least one element.
fun DoubleArray.any(): Boolean
Returns true
if at least one element matches the given predicate.
fun DoubleArray.any(predicate: (Double) -> Boolean): Boolean
asIterable
Creates an Iterable instance that wraps the original array returning its elements when being iterated.
fun DoubleArray.asIterable(): Iterable<Double>
asSequence
Creates a Sequence instance that wraps the original array returning its elements when being iterated.
fun DoubleArray.asSequence(): Sequence<Double>
associate
Returns a Map containing key-value pairs provided by transform function applied to elements of the given array.
fun <K, V> DoubleArray.associate(
transform: (Double) -> Pair<K, V>
): Map<K, V>
associateBy
Returns a Map containing the elements from the given array indexed by the key returned from keySelector function applied to each element.
fun <K> DoubleArray.associateBy(
keySelector: (Double) -> K
): Map<K, Double>
Returns a Map containing the values provided by valueTransform and indexed by keySelector functions applied to elements of the given array.
fun <K, V> DoubleArray.associateBy(
keySelector: (Double) -> K,
valueTransform: (Double) -> V
): Map<K, V>
associateByTo
Populates and returns the destination mutable map with key-value pairs, where key is provided by the keySelector function applied to each element of the given array and value is the element itself.
fun <K, M : MutableMap<in K, in Double>> DoubleArray.associateByTo(
destination: M,
keySelector: (Double) -> K
): M
Populates and returns the destination mutable map with key-value pairs, where key is provided by the keySelector function and and value is provided by the valueTransform function applied to elements of the given array.
fun <K, V, M : MutableMap<in K, in V>> DoubleArray.associateByTo(
destination: M,
keySelector: (Double) -> K,
valueTransform: (Double) -> V
): M
associateTo
Populates and returns the destination mutable map with key-value pairs provided by transform function applied to each element of the given array.
fun <K, V, M : MutableMap<in K, in V>> DoubleArray.associateTo(
destination: M,
transform: (Double) -> Pair<K, V>
): M
average
Returns an average value of elements in the array.
fun DoubleArray.average(): Double
binarySearch
Searches the array or the range of the array for the provided element using the binary search algorithm. The array is expected to be sorted, otherwise the result is undefined.
fun DoubleArray.binarySearch(
element: Double,
fromIndex: Int = 0,
toIndex: Int = size
): Int
component1
Returns 1st element from the array.
operator fun DoubleArray.component1(): Double
component2
Returns 2nd element from the array.
operator fun DoubleArray.component2(): Double
component3
Returns 3rd element from the array.
operator fun DoubleArray.component3(): Double
component4
Returns 4th element from the array.
operator fun DoubleArray.component4(): Double
component5
Returns 5th element from the array.
operator fun DoubleArray.component5(): Double
contains
Returns true
if element is found in the array.
operator fun DoubleArray.contains(element: Double): Boolean
count
Returns the number of elements in this array.
fun DoubleArray.count(): Int
Returns the number of elements matching the given predicate.
fun DoubleArray.count(predicate: (Double) -> Boolean): Int
distinct
Returns a list containing only distinct elements from the given array.
fun DoubleArray.distinct(): List<Double>
distinctBy
Returns a list containing only elements from the given array having distinct keys returned by the given selector function.
fun <K> DoubleArray.distinctBy(
selector: (Double) -> K
): List<Double>
drop
Returns a list containing all elements except first n elements.
fun DoubleArray.drop(n: Int): List<Double>
dropLast
Returns a list containing all elements except last n elements.
fun DoubleArray.dropLast(n: Int): List<Double>
dropLastWhile
Returns a list containing all elements except last elements that satisfy the given predicate.
fun DoubleArray.dropLastWhile(
predicate: (Double) -> Boolean
): List<Double>
dropWhile
Returns a list containing all elements except first elements that satisfy the given predicate.
fun DoubleArray.dropWhile(
predicate: (Double) -> Boolean
): List<Double>
elementAtOrElse
Returns an element at the given index or the result of calling the defaultValue function if the index is out of bounds of this array.
fun DoubleArray.elementAtOrElse(
index: Int,
defaultValue: (Int) -> Double
): Double
elementAtOrNull
Returns an element at the given index or null
if the index is out of bounds of this array.
fun DoubleArray.elementAtOrNull(index: Int): Double?
filter
Returns a list containing only elements matching the given predicate.
fun DoubleArray.filter(
predicate: (Double) -> Boolean
): List<Double>
filterIndexed
Returns a list containing only elements matching the given predicate.
fun DoubleArray.filterIndexed(
predicate: (index: Int, Double) -> Boolean
): List<Double>
filterIndexedTo
Appends all elements matching the given predicate to the given destination.
fun <C : MutableCollection<in Double>> DoubleArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Double) -> Boolean
): C
filterNot
Returns a list containing all elements not matching the given predicate.
fun DoubleArray.filterNot(
predicate: (Double) -> Boolean
): List<Double>
filterNotTo
Appends all elements not matching the given predicate to the given destination.
fun <C : MutableCollection<in Double>> DoubleArray.filterNotTo(
destination: C,
predicate: (Double) -> Boolean
): C
filterTo
Appends all elements matching the given predicate to the given destination.
fun <C : MutableCollection<in Double>> DoubleArray.filterTo(
destination: C,
predicate: (Double) -> Boolean
): C
find
Returns the first element matching the given predicate, or null
if no such element was found.
fun DoubleArray.find(predicate: (Double) -> Boolean): Double?
findLast
Returns the last element matching the given predicate, or null
if no such element was found.
fun DoubleArray.findLast(
predicate: (Double) -> Boolean
): Double?
first
Returns first element.
fun DoubleArray.first(): Double
Returns the first element matching the given predicate.
fun DoubleArray.first(predicate: (Double) -> Boolean): Double
firstOrNull
Returns the first element, or null
if the array is empty.
fun DoubleArray.firstOrNull(): Double?
Returns the first element matching the given predicate, or null
if element was not found.
fun DoubleArray.firstOrNull(
predicate: (Double) -> Boolean
): Double?
flatMap
Returns a single list of all elements yielded from results of transform function being invoked on each element of original array.
fun <R> DoubleArray.flatMap(
transform: (Double) -> Iterable<R>
): List<R>
flatMapTo
Appends all elements yielded from results of transform function being invoked on each element of original array, to the given destination.
fun <R, C : MutableCollection<in R>> DoubleArray.flatMapTo(
destination: C,
transform: (Double) -> Iterable<R>
): C
fold
Accumulates value starting with initial value and applying operation from left to right to current accumulator value and each element.
fun <R> DoubleArray.fold(
initial: R,
operation: (acc: R, Double) -> R
): R
foldIndexed
Accumulates value starting with initial value and applying operation from left to right to current accumulator value and each element with its index in the original array.
fun <R> DoubleArray.foldIndexed(
initial: R,
operation: (index: Int, acc: R, Double) -> R
): R
foldRight
Accumulates value starting with initial value and applying operation from right to left to each element and current accumulator value.
fun <R> DoubleArray.foldRight(
initial: R,
operation: (Double, acc: R) -> R
): R
foldRightIndexed
Accumulates value starting with initial value and applying operation from right to left to each element with its index in the original array and current accumulator value.
fun <R> DoubleArray.foldRightIndexed(
initial: R,
operation: (index: Int, Double, acc: R) -> R
): R
forEach
Performs the given action on each element.
fun DoubleArray.forEach(action: (Double) -> Unit)
forEachIndexed
Performs the given action on each element, providing sequential index with the element.
fun DoubleArray.forEachIndexed(
action: (index: Int, Double) -> Unit)
getOrElse
Returns an element at the given index or the result of calling the defaultValue function if the index is out of bounds of this array.
fun DoubleArray.getOrElse(
index: Int,
defaultValue: (Int) -> Double
): Double
getOrNull
Returns an element at the given index or null
if the index is out of bounds of this array.
fun DoubleArray.getOrNull(index: Int): Double?
groupBy
Groups elements of the original array by the key returned by the given keySelector function applied to each element and returns a map where each group key is associated with a list of corresponding elements.
fun <K> DoubleArray.groupBy(
keySelector: (Double) -> K
): Map<K, List<Double>>
Groups values returned by the valueTransform function applied to each element of the original array by the key returned by the given keySelector function applied to the element and returns a map where each group key is associated with a list of corresponding values.
fun <K, V> DoubleArray.groupBy(
keySelector: (Double) -> K,
valueTransform: (Double) -> V
): Map<K, List<V>>
groupByTo
Groups elements of the original array by the key returned by the given keySelector function applied to each element and puts to the destination map each group key associated with a list of corresponding elements.
fun <K, M : MutableMap<in K, MutableList<Double>>> DoubleArray.groupByTo(
destination: M,
keySelector: (Double) -> K
): M
Groups values returned by the valueTransform function applied to each element of the original array by the key returned by the given keySelector function applied to the element and puts to the destination map each group key associated with a list of corresponding values.
fun <K, V, M : MutableMap<in K, MutableList<V>>> DoubleArray.groupByTo(
destination: M,
keySelector: (Double) -> K,
valueTransform: (Double) -> V
): M
indexOf
Returns first index of element, or -1 if the array does not contain element.
fun DoubleArray.indexOf(element: Double): Int
indexOfFirst
Returns index of the first element matching the given predicate, or -1 if the array does not contain such element.
fun DoubleArray.indexOfFirst(
predicate: (Double) -> Boolean
): Int
indexOfLast
Returns index of the last element matching the given predicate, or -1 if the array does not contain such element.
fun DoubleArray.indexOfLast(
predicate: (Double) -> Boolean
): Int
intersect
Returns a set containing all elements that are contained by both this array and the specified collection.
infix fun DoubleArray.intersect(
other: Iterable<Double>
): Set<Double>
isEmpty
Returns true
if the array is empty.
fun DoubleArray.isEmpty(): Boolean
isNotEmpty
Returns true
if the array is not empty.
fun DoubleArray.isNotEmpty(): Boolean
joinTo
Appends the string from all the elements separated using separator and using the given prefix and postfix if supplied.
fun <A : Appendable> DoubleArray.joinTo(
buffer: A,
separator: CharSequence = ", ",
prefix: CharSequence = "",
postfix: CharSequence = "",
limit: Int = -1,
truncated: CharSequence = "...",
transform: ((Double) -> CharSequence)? = null
): A
joinToString
Creates a string from all the elements separated using separator and using the given prefix and postfix if supplied.
fun DoubleArray.joinToString(
separator: CharSequence = ", ",
prefix: CharSequence = "",
postfix: CharSequence = "",
limit: Int = -1,
truncated: CharSequence = "...",
transform: ((Double) -> CharSequence)? = null
): String
last
Returns the last element.
fun DoubleArray.last(): Double
Returns the last element matching the given predicate.
fun DoubleArray.last(predicate: (Double) -> Boolean): Double
lastIndexOf
Returns last index of element, or -1 if the array does not contain element.
fun DoubleArray.lastIndexOf(element: Double): Int
lastOrNull
Returns the last element, or null
if the array is empty.
fun DoubleArray.lastOrNull(): Double?
Returns the last element matching the given predicate, or null
if no such element was found.
fun DoubleArray.lastOrNull(
predicate: (Double) -> Boolean
): Double?
map
Returns a list containing the results of applying the given transform function to each element in the original array.
fun <R> DoubleArray.map(transform: (Double) -> R): List<R>
mapIndexed
Returns a list containing the results of applying the given transform function to each element and its index in the original array.
fun <R> DoubleArray.mapIndexed(
transform: (index: Int, Double) -> R
): List<R>
mapIndexedTo
Applies the given transform function to each element and its index in the original array and appends the results to the given destination.
fun <R, C : MutableCollection<in R>> DoubleArray.mapIndexedTo(
destination: C,
transform: (index: Int, Double) -> R
): C
mapTo
Applies the given transform function to each element of the original array and appends the results to the given destination.
fun <R, C : MutableCollection<in R>> DoubleArray.mapTo(
destination: C,
transform: (Double) -> R
): C
max
Returns the largest element or null
if there are no elements.
fun DoubleArray.max(): Double?
maxBy
Returns the first element yielding the largest value of the given function or null
if there are no elements.
fun <R : Comparable<R>> DoubleArray.maxBy(
selector: (Double) -> R
): Double?
maxWith
Returns the first element having the largest value according to the provided comparator or null
if there are no elements.
fun DoubleArray.maxWith(
comparator: Comparator<in Double>
): Double?
min
Returns the smallest element or null
if there are no elements.
fun DoubleArray.min(): Double?
minBy
Returns the first element yielding the smallest value of the given function or null
if there are no elements.
fun <R : Comparable<R>> DoubleArray.minBy(
selector: (Double) -> R
): Double?
minWith
Returns the first element having the smallest value according to the provided comparator or null
if there are no elements.
fun DoubleArray.minWith(
comparator: Comparator<in Double>
): Double?
none
Returns true
if the array has no elements.
fun DoubleArray.none(): Boolean
Returns true
if no elements match the given predicate.
fun DoubleArray.none(predicate: (Double) -> Boolean): Boolean
random
Returns a random element from this array.
fun DoubleArray.random(): Double
Returns a random element from this array using the specified source of randomness.
fun DoubleArray.random(random: Random): Double
randomOrNull
Returns a random element from this array, or null
if this array is empty.
fun DoubleArray.randomOrNull(): Double?
Returns a random element from this array using the specified source of randomness, or null
if this array is empty.
fun DoubleArray.randomOrNull(random: Random): Double?
reduce
Accumulates value starting with the first element and applying operation from left to right to current accumulator value and each element.
fun DoubleArray.reduce(
operation: (acc: Double, Double) -> Double
): Double
reduceIndexed
Accumulates value starting with the first element and applying operation from left to right to current accumulator value and each element with its index in the original array.
fun DoubleArray.reduceIndexed(
operation: (index: Int, acc: Double, Double) -> Double
): Double
reduceOrNull
Accumulates value starting with the first element and applying operation from left to right to current accumulator value and each element. Returns null if the array is empty.
fun DoubleArray.reduceOrNull(
operation: (acc: Double, Double) -> Double
): Double?
reduceRight
Accumulates value starting with last element and applying operation from right to left to each element and current accumulator value.
fun DoubleArray.reduceRight(
operation: (Double, acc: Double) -> Double
): Double
reduceRightIndexed
Accumulates value starting with last element and applying operation from right to left to each element with its index in the original array and current accumulator value.
fun DoubleArray.reduceRightIndexed(
operation: (index: Int, Double, acc: Double) -> Double
): Double
reduceRightOrNull
Accumulates value starting with last element and applying operation from right to left to each element and current accumulator value. Returns null if the array is empty.
fun DoubleArray.reduceRightOrNull(
operation: (Double, acc: Double) -> Double
): Double?
refTo
fun DoubleArray.refTo(index: Int): CValuesRef<DoubleVar>
reverse
Reverses elements in the array in-place.
fun DoubleArray.reverse()
reversed
Returns a list with elements in reversed order.
fun DoubleArray.reversed(): List<Double>
reversedArray
Returns an array with elements of this array in reversed order.
fun DoubleArray.reversedArray(): DoubleArray
scan
Returns a list containing successive accumulation values generated by applying operation from left to right to each element and current accumulator value that starts with initial value.
fun <R> DoubleArray.scan(
initial: R,
operation: (acc: R, Double) -> R
): List<R>
scanIndexed
Returns a list containing successive accumulation values generated by applying operation from left to right to each element, its index in the original array and current accumulator value that starts with initial value.
fun <R> DoubleArray.scanIndexed(
initial: R,
operation: (index: Int, acc: R, Double) -> R
): List<R>
scanReduce
Returns a list containing successive accumulation values generated by applying operation from left to right to each element and current accumulator value that starts with the first element of this array.
fun DoubleArray.scanReduce(
operation: (acc: Double, Double) -> Double
): List<Double>
scanReduceIndexed
Returns a list containing successive accumulation values generated by applying operation from left to right to each element, its index in the original array and current accumulator value that starts with the first element of this array.
fun DoubleArray.scanReduceIndexed(
operation: (index: Int, acc: Double, Double) -> Double
): List<Double>
single
Returns the single element, or throws an exception if the array is empty or has more than one element.
fun DoubleArray.single(): Double
Returns the single element matching the given predicate, or throws exception if there is no or more than one matching element.
fun DoubleArray.single(
predicate: (Double) -> Boolean
): Double
singleOrNull
Returns single element, or null
if the array is empty or has more than one element.
fun DoubleArray.singleOrNull(): Double?
Returns the single element matching the given predicate, or null
if element was not found or more than one element was found.
fun DoubleArray.singleOrNull(
predicate: (Double) -> Boolean
): Double?
slice
Returns a list containing elements at indices in the specified indices range.
fun DoubleArray.slice(indices: IntRange): List<Double>
Returns a list containing elements at specified indices.
fun DoubleArray.slice(indices: Iterable<Int>): List<Double>
sliceArray
Returns an array containing elements of this array at specified indices.
fun DoubleArray.sliceArray(
indices: Collection<Int>
): DoubleArray
Returns an array containing elements at indices in the specified indices range.
fun DoubleArray.sliceArray(indices: IntRange): DoubleArray
sort
Sorts a range in the array in-place.
fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size)
Sorts the array in-place according to the order specified by the given comparison function.
fun DoubleArray.sort(
comparison: (a: Double, b: Double) -> Int)
sortDescending
Sorts elements in the array in-place descending according to their natural sort order.
fun DoubleArray.sortDescending()
sorted
Returns a list of all elements sorted according to their natural sort order.
fun DoubleArray.sorted(): List<Double>
sortedArray
Returns an array with all elements of this array sorted according to their natural sort order.
fun DoubleArray.sortedArray(): DoubleArray
sortedArrayDescending
Returns an array with all elements of this array sorted descending according to their natural sort order.
fun DoubleArray.sortedArrayDescending(): DoubleArray
sortedBy
Returns a list of all elements sorted according to natural sort order of the value returned by specified selector function.
fun <R : Comparable<R>> DoubleArray.sortedBy(
selector: (Double) -> R?
): List<Double>
sortedByDescending
Returns a list of all elements sorted descending according to natural sort order of the value returned by specified selector function.
fun <R : Comparable<R>> DoubleArray.sortedByDescending(
selector: (Double) -> R?
): List<Double>
sortedDescending
Returns a list of all elements sorted descending according to their natural sort order.
fun DoubleArray.sortedDescending(): List<Double>
sortedWith
Returns a list of all elements sorted according to the specified comparator.
fun DoubleArray.sortedWith(
comparator: Comparator<in Double>
): List<Double>
subtract
Returns a set containing all elements that are contained by this array and not contained by the specified collection.
infix fun DoubleArray.subtract(
other: Iterable<Double>
): Set<Double>
sum
Returns the sum of all elements in the array.
fun DoubleArray.sum(): Double
sumBy
Returns the sum of all values produced by selector function applied to each element in the array.
fun DoubleArray.sumBy(selector: (Double) -> Int): Int
sumByDouble
Returns the sum of all values produced by selector function applied to each element in the array.
fun DoubleArray.sumByDouble(
selector: (Double) -> Double
): Double
take
Returns a list containing first n elements.
fun DoubleArray.take(n: Int): List<Double>
takeLast
Returns a list containing last n elements.
fun DoubleArray.takeLast(n: Int): List<Double>
takeLastWhile
Returns a list containing last elements satisfying the given predicate.
fun DoubleArray.takeLastWhile(
predicate: (Double) -> Boolean
): List<Double>
takeWhile
Returns a list containing first elements satisfying the given predicate.
fun DoubleArray.takeWhile(
predicate: (Double) -> Boolean
): List<Double>
toCollection
Appends all elements to the given destination collection.
fun <C : MutableCollection<in Double>> DoubleArray.toCollection(
destination: C
): C
toCValues
fun DoubleArray.toCValues(): CValues<DoubleVar>
toHashSet
Returns a HashSet of all elements.
fun DoubleArray.toHashSet(): HashSet<Double>
toList
Returns a List containing all elements.
fun DoubleArray.toList(): List<Double>
toMutableList
Returns a MutableList filled with all elements of this array.
fun DoubleArray.toMutableList(): MutableList<Double>
toMutableSet
Returns a mutable set containing all distinct elements from the given array.
fun DoubleArray.toMutableSet(): MutableSet<Double>
toSet
Returns a Set of all elements.
fun DoubleArray.toSet(): Set<Double>
toSortedSet
Returns a SortedSet of all elements.
fun DoubleArray.toSortedSet(): SortedSet<Double>
union
Returns a set containing all distinct elements from both collections.
infix fun DoubleArray.union(
other: Iterable<Double>
): Set<Double>
withIndex
Returns a lazy Iterable that wraps each element of the original array into an IndexedValue containing the index of that element and the element itself.
fun DoubleArray.withIndex(): Iterable<IndexedValue<Double>>
zip
Returns a list of pairs built from the elements of this
array and the other array with the same index.
The returned list has length of the shortest collection.
Returns a list of values built from the elements of this
array and the other array with the same index
using the provided transform function applied to each pair of elements.
The returned list has length of the shortest collection.
fun <R, V> DoubleArray.zip(
other: Array<out R>,
transform: (a: Double, b: R) -> V
): List<V>
Returns a list of pairs built from the elements of this
collection and other array with the same index.
The returned list has length of the shortest collection.
infix fun <R> DoubleArray.zip(
other: Iterable<R>
): List<Pair<Double, R>>
Returns a list of values built from the elements of this
array and the other collection with the same index
using the provided transform function applied to each pair of elements.
The returned list has length of the shortest collection.
fun <R, V> DoubleArray.zip(
other: Iterable<R>,
transform: (a: Double, b: R) -> V
): List<V>
Returns a list of values built from the elements of this
array and the other array with the same index
using the provided transform function applied to each pair of elements.
The returned list has length of the shortest array.
fun <V> DoubleArray.zip(
other: DoubleArray,
transform: (a: Double, b: Double) -> V
): List<V>