org.apache.ignite.ml.math.primitives.vector

## Class AbstractVector

- java.lang.Object
- - org.apache.ignite.ml.math.primitives.vector.AbstractVector

- All Implemented Interfaces:
    Externalizable, Serializable, Destroyable, MetaAttributes, Vector, StorageOpsMetrics
  Direct Known Subclasses:
    DenseVector, SparseVector, VectorizedViewMatrix, VectorView

      public abstract class AbstractVector
      extends Object
      implements Vector

  This class provides a helper implementation of the `Vector` interface to minimize the effort required to implement it. Subclasses may override some of the implemented methods if a more specific or optimized implementation is desirable.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.ignite.ml.math.primitives.vector.Vector

      `Vector.Element`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractVector()`
    `AbstractVector(boolean readOnly, VectorStorage sto)`
    `AbstractVector(VectorStorage sto)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Iterable<Vector.Element>` | `all()` Gets iterator over all elements in this vector.
    `Spliterator<Double>` | `allSpliterator()` Gets spliterator for all values in this vector.
    `Vector` | `assign(double val)` Assigns given value to all elements of this vector.
    `Vector` | `assign(double[] vals)` Assigns values from given array to this vector.
    `Vector` | `assign(IntToDoubleFunction fun)` Assigns each vector element to the value generated by given function.
    `Vector` | `assign(Vector vec)` Copies values from the argument vector to this one.
    `protected void` | `checkCardinality(double[] vec)`
    `protected void` | `checkCardinality(int[] arr)`
    `protected void` | `checkCardinality(Vector vec)`
    `protected void` | `checkIndex(int idx)` Check index bounds.
    `void` | `compute(int idx, IgniteIntDoubleToDoubleBiFunction f)` Replace vector entry with value oldVal at i with result of computing f(i, oldVal).
    `Vector` | `copy()` Creates new copy of this vector.
    `Vector` | `copyOfRange(int from, int to)` Copies the specified range of the vector into a new vector.
    `Matrix` | `cross(Vector vec)` Gets the cross product of this vector and the other vector.
    `void` | `destroy()` Destroys object if managed outside of JVM.
    `Vector` | `divide(double x)` Creates new vector containing values from this vector divided by the argument.
    `double` | `dot(Vector vec)` Gets dot product of two vectors.
    `protected double` | `dotSelf()`
    `boolean` | `equals(Object obj)`
    `<T> T` | `foldMap(IgniteBiFunction<T,Double,T> foldFun, IgniteDoubleFunction<Double> mapFun, T zeroVal)` Folds this vector into a single value.
    `<T> T` | `foldMap(Vector vec, IgniteBiFunction<T,Double,T> foldFun, IgniteBiFunction<Double,Double,Double> combFun, T zeroVal)` Combines & maps two vector and folds them into a single value.
    `double` | `get(int idx)` Gets the value at specified index.
    `double` | `getDistanceSquared(Vector vec)` Get the square of the distance between this vector and the argument vector.
    `Vector.Element` | `getElement(int idx)` Gets element at the given index.
    `double` | `getLengthSquared()` Gets the sum of squares of all elements in this vector.
    `Map<String,Object>` | `getMetaStorage()` Implementation should return an instance of the map to store meta attributes.
    `<T extends Serializable> T` | `getRaw(int idx)` Gets the value at specified index.
    `<T extends Serializable> T` | `getRawX(int idx)` Gets the value at specified index without checking for index boundaries.
    `VectorStorage` | `getStorage()` Gets vector storage model.
    `double` | `getX(int idx)` Gets the value at specified index without checking for index boundaries.
    `IgniteUuid` | `guid()` Auto-generated globally unique vector ID.
    `int` | `hashCode()`
    `Vector` | `increment(int idx, double val)` Increments value at given index.
    `Vector` | `incrementX(int idx, double val)` Increments value at given index without checking for index boundaries.
    `boolean` | `isArrayBased()` Checks if implementation is based on Java arrays.
    `boolean` | `isDense()` Checks if this implementation should be considered dense so that it explicitly represents every value.
    `boolean` | `isNumeric()`
    `protected boolean` | `isZero(double val)` Tests if given value is considered a zero value.
    `double` | `kNorm(double power)` Gets the k-norm of the vector.
    `Vector` | `logNormalize()` Creates new vector containing the `log(1 + entry) / L_2 norm` values of this vector.
    `Vector` | `logNormalize(double power)` Creates new vector with a normalized value calculated as `log_power(1 + entry) / L_power norm`.
    `protected Vector.Element` | `makeElement(int idx)`
    `Vector` | `map(IgniteBiFunction<Double,Double,Double> fun, double y)` Maps all elements of this vector by applying given function to each element with a constant second parameter `y`.
    `Vector` | `map(IgniteDoubleFunction<Double> fun)` Maps all values in this vector through a given function.
    `Vector` | `map(Vector vec, IgniteBiFunction<Double,Double,Double> fun)` Maps all values in this vector through a given function.
    `Vector.Element` | `maxElement()` Gets maximum element in this vector.
    `double` | `maxValue()` Gets maximum value in this vector.
    `Vector.Element` | `minElement()` Gets minimal element in this vector.
    `Vector` | `minus(Vector vec)` Creates new vector containing element by element difference between this vector and the argument one.
    `double` | `minValue()` Gets minimal value in this vector.
    `int` | `nonZeroElements()` Gets number of non-zero elements in this vector.
    `Iterable<Vector.Element>` | `nonZeroes()` Iterates ove all non-zero elements in this vector.
    `Spliterator<Double>` | `nonZeroSpliterator()` Gets spliterator for all non-zero values in this vector.
    `Vector` | `normalize()` Creates new vector containing the normalized (L_2 norm) values of this vector.
    `Vector` | `normalize(double power)` Creates new vector containing the normalized (L_power norm) values of this vector.
    `Vector` | `plus(double x)` Creates new vector containing sum of each element in this vector and argument.
    `Vector` | `plus(Vector vec)` Creates new vector containing element by element sum from both vectors.
    `void` | `readExternal(ObjectInput in)`
    `Vector` | `set(int idx, double val)` Sets value.
    `Vector` | `setRaw(int idx, Serializable val)` Sets value.
    `Vector` | `setRawX(int idx, Serializable val)` Sets value without checking for index boundaries.
    `protected void` | `setStorage(VectorStorage sto)` Set storage.
    `Vector` | `setX(int idx, double val)` Sets value without checking for index boundaries.
    `int` | `size()` Gets cardinality of this vector (maximum number of the elements).
    `Vector` | `sort()` Sorts this vector in ascending order.
    `protected double` | `storageGet(int i)`
    `protected <T extends Serializable> T` | `storageGetRaw(int i)` Gets serializable value from storage and casts it to target type T.
    `protected void` | `storageSet(int i, double v)`
    `protected void` | `storageSetRaw(int i, Serializable v)` Sets serializable value.
    `double` | `sum()` Gets the sum of all elements in this vector.
    `Vector` | `times(double x)` Gets a new vector that contains product of each element and the argument.
    `Vector` | `times(Vector vec)` Gets a new vector that is an element-wie product of this vector and the argument.
    `Matrix` | `toMatrix(boolean rowLike)` Converts this vector into [N x 1] or [1 x N] matrix where N is this vector cardinality.
    `Matrix` | `toMatrixPlusOne(boolean rowLike, double zeroVal)` Converts this vector into [N+1 x 1] or [1 x N+1] matrix where N is this vector cardinality
    `Vector` | `viewPart(int off, int len)`
    `void` | `writeExternal(ObjectOutput out)`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.ignite.ml.math.primitives.vector.Vector

      `asArray, labeled, like, likeMatrix`

    - ### Methods inherited from interface org.apache.ignite.ml.math.MetaAttributes

      `getAttribute, hasAttribute, removeAttribute, setAttribute`

- - ### Constructor Detail

    - #### AbstractVector

          public AbstractVector(VectorStorage sto)

      Parameters:
        `sto` - Storage.

    - #### AbstractVector

          public AbstractVector(boolean readOnly,
                                VectorStorage sto)

      Parameters:
        `readOnly` - Is read only.
        `sto` - Storage.

    - #### AbstractVector

          public AbstractVector()

  - ### Method Detail

    - #### setStorage

          protected void setStorage(VectorStorage sto)

      Set storage.
      Parameters:
        `sto` - Storage.

    - #### storageSet

          protected void storageSet(int i,
                                    double v)

      Parameters:
        `i` - Index.
        `v` - Value.

    - #### storageSetRaw

          protected void storageSetRaw(int i,
                                       Serializable v)

      Sets serializable value.
      Parameters:
        `i` - Index.
        `v` - Value.

    - #### storageGet

          protected double storageGet(int i)

      Parameters:
        `i` - Index.
      Returns:
        Value.

    - #### storageGetRaw

          protected <T extends Serializable> T storageGetRaw(int i)

      Gets serializable value from storage and casts it to target type T.
      Parameters:
        `i` - Index.
      Returns:
        Value.

    - #### size

          public int size()

      Gets cardinality of this vector (maximum number of the elements).
      Specified by:
        `size` in interface `Vector`
      Returns:
        This vector's cardinality.

    - #### checkIndex

          protected void checkIndex(int idx)

      Check index bounds.
      Parameters:
        `idx` - Index to check.

    - #### get

          public double get(int idx)

      Gets the value at specified index.
      Specified by:
        `get` in interface `Vector`
      Parameters:
        `idx` - Vector index.
      Returns:
        Vector value.

    - #### getX

          public double getX(int idx)

      Gets the value at specified index without checking for index boundaries.
      Specified by:
        `getX` in interface `Vector`
      Parameters:
        `idx` - Vector index.
      Returns:
        Vector value.

    - #### getRaw

          public <T extends Serializable> T getRaw(int idx)

      Gets the value at specified index.
      Specified by:
        `getRaw` in interface `Vector`
      Parameters:
        `idx` - Vector index.
      Returns:
        Vector value.

    - #### getRawX

          public <T extends Serializable> T getRawX(int idx)

      Gets the value at specified index without checking for index boundaries.
      Specified by:
        `getRawX` in interface `Vector`
      Parameters:
        `idx` - Vector index.
      Returns:
        Vector value.

    - #### isArrayBased

          public boolean isArrayBased()

      Checks if implementation is based on Java arrays.
      Specified by:
        `isArrayBased` in interface `StorageOpsMetrics`

    - #### sort

          public Vector sort()

      Sorts this vector in ascending order.
      Specified by:
        `sort` in interface `Vector`

    - #### map

          public Vector map(IgniteDoubleFunction<Double> fun)

      Maps all values in this vector through a given function.
      Specified by:
        `map` in interface `Vector`
      Parameters:
        `fun` - Mapping function.
      Returns:
        This vector.

    - #### map

          public Vector map(Vector vec,
                            IgniteBiFunction<Double,Double,Double> fun)

      Maps all values in this vector through a given function. For this vector `A`, argument vector `B` and the function `F` this method maps every element `x` as: `A(x) = F(A(x), B(x))`
      Specified by:
        `map` in interface `Vector`
      Parameters:
        `vec` - Argument vector.
        `fun` - Mapping function.
      Returns:
        This function.

    - #### map

          public Vector map(IgniteBiFunction<Double,Double,Double> fun,
                            double y)

      Maps all elements of this vector by applying given function to each element with a constant second parameter `y`.
      Specified by:
        `map` in interface `Vector`
      Parameters:
        `fun` - Mapping function.
        `y` - Second parameter for mapping function.
      Returns:
        This vector.

    - #### makeElement

          protected Vector.Element makeElement(int idx)

      Parameters:
        `idx` - Index.
      Returns:
        Value.

    - #### minElement

          public Vector.Element minElement()

      Gets minimal element in this vector.
      Specified by:
        `minElement` in interface `Vector`
      Returns:
        Minimal element.

    - #### maxElement

          public Vector.Element maxElement()

      Gets maximum element in this vector.
      Specified by:
        `maxElement` in interface `Vector`
      Returns:
        Maximum element.

    - #### minValue

          public double minValue()

      Gets minimal value in this vector.
      Specified by:
        `minValue` in interface `Vector`
      Returns:
        Minimal value.

    - #### maxValue

          public double maxValue()

      Gets maximum value in this vector.
      Specified by:
        `maxValue` in interface `Vector`
      Returns:
        Maximum c.

    - #### set

          public Vector set(int idx,
                            double val)

      Sets value.
      Specified by:
        `set` in interface `Vector`
      Parameters:
        `idx` - Vector index to set value at.
        `val` - Value to set.
      Returns:
        This vector.

    - #### setX

          public Vector setX(int idx,
                             double val)

      Sets value without checking for index boundaries.
      Specified by:
        `setX` in interface `Vector`
      Parameters:
        `idx` - Vector index to set value at.
        `val` - Value to set.
      Returns:
        This vector.

    - #### setRaw

          public Vector setRaw(int idx,
                               Serializable val)

      Sets value.
      Specified by:
        `setRaw` in interface `Vector`
      Parameters:
        `idx` - Vector index to set value at.
        `val` - Value to set.
      Returns:
        This vector.

    - #### setRawX

          public Vector setRawX(int idx,
                                Serializable val)

      Sets value without checking for index boundaries.
      Specified by:
        `setRawX` in interface `Vector`
      Parameters:
        `idx` - Vector index to set value at.
        `val` - Value to set.
      Returns:
        This vector.

    - #### increment

          public Vector increment(int idx,
                                  double val)

      Increments value at given index.
      Specified by:
        `increment` in interface `Vector`
      Parameters:
        `idx` - Vector index.
        `val` - Increment value.
      Returns:
        This vector.

    - #### incrementX

          public Vector incrementX(int idx,
                                   double val)

      Increments value at given index without checking for index boundaries.
      Specified by:
        `incrementX` in interface `Vector`
      Parameters:
        `idx` - Vector index.
        `val` - Increment value.
      Returns:
        This vector.

    - #### isZero

          protected boolean isZero(double val)

      Tests if given value is considered a zero value.
      Parameters:
        `val` - Value to check.

    - #### sum

          public double sum()

      Gets the sum of all elements in this vector.
      Specified by:
        `sum` in interface `Vector`
      Returns:
        Vector's sum

    - #### guid

          public IgniteUuid guid()

      Auto-generated globally unique vector ID.
      Specified by:
        `guid` in interface `Vector`
      Returns:
        Vector GUID.

    - #### all

          public Iterable<Vector.Element> all()

      Gets iterator over all elements in this vector. NOTE: implementation can choose to reuse `Vector.Element` instance so you need to copy it if you want to retain it outside of iteration.
      Specified by:
        `all` in interface `Vector`
      Returns:
        Iterator.

    - #### nonZeroElements

          public int nonZeroElements()

      Gets number of non-zero elements in this vector.
      Specified by:
        `nonZeroElements` in interface `Vector`
      Returns:
        Number of non-zero elements in this vector.

    - #### foldMap

          public <T> T foldMap(IgniteBiFunction<T,Double,T> foldFun,
                               IgniteDoubleFunction<Double> mapFun,
                               T zeroVal)

      Folds this vector into a single value.
      Specified by:
        `foldMap` in interface `Vector`
      Type Parameters:
        `T` - Type of the folded value.
      Parameters:
        `foldFun` - Folding function that takes two parameters: accumulator and the current value.
        `mapFun` - Mapping function that is called on each vector element before its passed to the accumulator (as its second parameter).
        `zeroVal` - Zero value for fold operation.
      Returns:
        Folded value of this vector.

    - #### foldMap

          public <T> T foldMap(Vector vec,
                               IgniteBiFunction<T,Double,T> foldFun,
                               IgniteBiFunction<Double,Double,Double> combFun,
                               T zeroVal)

      Combines & maps two vector and folds them into a single value.
      Specified by:
        `foldMap` in interface `Vector`
      Type Parameters:
        `T` - Type of the folded value.
      Parameters:
        `vec` - Another vector to combine with.
        `foldFun` - Folding function.
        `combFun` - Combine function.
        `zeroVal` - Zero value for fold operation.
      Returns:
        Folded value of these vectors.

    - #### nonZeroes

          public Iterable<Vector.Element> nonZeroes()

      Iterates ove all non-zero elements in this vector. NOTE: implementation can choose to reuse `Vector.Element` instance so you need to copy it if you want to retain it outside of iteration.
      Specified by:
        `nonZeroes` in interface `Vector`
      Returns:
        Iterator.

    - #### getMetaStorage

          public Map<String,Object> getMetaStorage()

      Implementation should return an instance of the map to store meta attributes.
      Specified by:
        `getMetaStorage` in interface `MetaAttributes`

    - #### assign

          public Vector assign(double val)

      Assigns given value to all elements of this vector.
      Specified by:
        `assign` in interface `Vector`
      Parameters:
        `val` - Value to assign.
      Returns:
        This vector.

    - #### assign

          public Vector assign(double[] vals)

      Assigns values from given array to this vector.
      Specified by:
        `assign` in interface `Vector`
      Parameters:
        `vals` - Values to assign.
      Returns:
        This vector.

    - #### assign

          public Vector assign(Vector vec)

      Copies values from the argument vector to this one.
      Specified by:
        `assign` in interface `Vector`
      Parameters:
        `vec` - Argument vector.
      Returns:
        This vector.

    - #### assign

          public Vector assign(IntToDoubleFunction fun)

      Assigns each vector element to the value generated by given function.
      Specified by:
        `assign` in interface `Vector`
      Parameters:
        `fun` - Function that takes the index and returns value.
      Returns:
        This vector.

    - #### allSpliterator

          public Spliterator<Double> allSpliterator()

      Gets spliterator for all values in this vector.
      Specified by:
        `allSpliterator` in interface `Vector`
      Returns:
        Spliterator for all values.

    - #### nonZeroSpliterator

          public Spliterator<Double> nonZeroSpliterator()

      Gets spliterator for all non-zero values in this vector.
      Specified by:
        `nonZeroSpliterator` in interface `Vector`
      Returns:
        Spliterator for all non-zero values.

    - #### dot

          public double dot(Vector vec)

      Gets dot product of two vectors.
      Specified by:
        `dot` in interface `Vector`
      Parameters:
        `vec` - Argument vector.
      Returns:
        Dot product of two vectors.

    - #### getLengthSquared

          public double getLengthSquared()

      Gets the sum of squares of all elements in this vector.
      Specified by:
        `getLengthSquared` in interface `Vector`
      Returns:
        Length squared value.

    - #### isDense

          public boolean isDense()

      Checks if this implementation should be considered dense so that it explicitly represents every value.
      Specified by:
        `isDense` in interface `StorageOpsMetrics`

    - #### isNumeric

          public boolean isNumeric()

      Specified by:
        `isNumeric` in interface `StorageOpsMetrics`
      Returns:
        true if all stored data are values of Number class.

    - #### getStorage

          public VectorStorage getStorage()

      Gets vector storage model.
      Specified by:
        `getStorage` in interface `Vector`

    - #### viewPart

          public Vector viewPart(int off,
                                 int len)

      Specified by:
        `viewPart` in interface `Vector`
      Parameters:
        `off` - Offset into parent vector.
        `len` - Length of the view.

    - #### cross

          public Matrix cross(Vector vec)

      Gets the cross product of this vector and the other vector.
      Specified by:
        `cross` in interface `Vector`
      Parameters:
        `vec` - Second vector.
      Returns:
        New matrix as a cross product of two vectors.

    - #### toMatrix

          public Matrix toMatrix(boolean rowLike)

      Converts this vector into [N x 1] or [1 x N] matrix where N is this vector cardinality.
      Specified by:
        `toMatrix` in interface `Vector`
      Parameters:
        `rowLike` - `true` for rowLike [N x 1], or `false` for column [1 x N] matrix.
      Returns:
        Newly created matrix.

    - #### toMatrixPlusOne

          public Matrix toMatrixPlusOne(boolean rowLike,
                                        double zeroVal)

      Converts this vector into [N+1 x 1] or [1 x N+1] matrix where N is this vector cardinality. (0,0) element of this matrix will be `zeroVal` parameter.
      Specified by:
        `toMatrixPlusOne` in interface `Vector`
      Parameters:
        `rowLike` - `true` for rowLike [N+1 x 1], or `false` for column [1 x N+1] matrix.
      Returns:
        Newly created matrix.

    - #### getDistanceSquared

          public double getDistanceSquared(Vector vec)

      Get the square of the distance between this vector and the argument vector.
      Specified by:
        `getDistanceSquared` in interface `Vector`
      Parameters:
        `vec` - Another vector.
      Returns:
        Distance squared.

    - #### checkCardinality

          protected void checkCardinality(Vector vec)

      Parameters:
        `vec` - Vector to check for valid cardinality.

    - #### checkCardinality

          protected void checkCardinality(double[] vec)

      Parameters:
        `vec` - Array to check for valid cardinality.

    - #### checkCardinality

          protected void checkCardinality(int[] arr)

      Parameters:
        `arr` - Array to check for valid cardinality.

    - #### minus

          public Vector minus(Vector vec)

      Creates new vector containing element by element difference between this vector and the argument one.
      Specified by:
        `minus` in interface `Vector`
      Parameters:
        `vec` - Argument vector.
      Returns:
        New vector.

    - #### plus

          public Vector plus(double x)

      Creates new vector containing sum of each element in this vector and argument.
      Specified by:
        `plus` in interface `Vector`
      Parameters:
        `x` - Argument value.
      Returns:
        New vector.

    - #### divide

          public Vector divide(double x)

      Creates new vector containing values from this vector divided by the argument.
      Specified by:
        `divide` in interface `Vector`
      Parameters:
        `x` - Division argument.
      Returns:
        New vector.

    - #### times

          public Vector times(double x)

      Gets a new vector that contains product of each element and the argument.
      Specified by:
        `times` in interface `Vector`
      Parameters:
        `x` - Multiply argument.
      Returns:
        New vector.

    - #### times

          public Vector times(Vector vec)

      Gets a new vector that is an element-wie product of this vector and the argument.
      Specified by:
        `times` in interface `Vector`
      Parameters:
        `vec` - Vector to multiply by.
      Returns:
        New vector.

    - #### plus

          public Vector plus(Vector vec)

      Creates new vector containing element by element sum from both vectors.
      Specified by:
        `plus` in interface `Vector`
      Parameters:
        `vec` - Other argument vector to add.
      Returns:
        New vector.

    - #### logNormalize

          public Vector logNormalize()

      Creates new vector containing the `log(1 + entry) / L_2 norm` values of this vector.
      Specified by:
        `logNormalize` in interface `Vector`
      Returns:
        New vector.

    - #### logNormalize

          public Vector logNormalize(double power)

      Creates new vector with a normalized value calculated as `log_power(1 + entry) / L_power norm`.
      Specified by:
        `logNormalize` in interface `Vector`
      Parameters:
        `power` - The power to use. Must be > 1. Cannot be `Double.POSITIVE_INFINITY`.
      Returns:
        New vector

    - #### kNorm

          public double kNorm(double power)

      Gets the k-norm of the vector. See http://en.wikipedia.org/wiki/Lp_space for more details.
      Specified by:
        `kNorm` in interface `Vector`
      Parameters:
        `power` - The power to use.
      See Also:
        `Vector.normalize(double)`

    - #### normalize

          public Vector normalize()

      Creates new vector containing the normalized (L_2 norm) values of this vector.
      Specified by:
        `normalize` in interface `Vector`
      Returns:
        New vector.

    - #### normalize

          public Vector normalize(double power)

      Creates new vector containing the normalized (L_power norm) values of this vector. See http://en.wikipedia.org/wiki/Lp_space for details.
      Specified by:
        `normalize` in interface `Vector`
      Parameters:
        `power` - The power to use. Must be >= 0. May also be `Double.POSITIVE_INFINITY`.
      Returns:
        New vector `x` such that `norm(x, power) == 1`

    - #### copy

          public Vector copy()

      Creates new copy of this vector.
      Specified by:
        `copy` in interface `Vector`
      Returns:
        New copy vector.

    - #### copyOfRange

          public Vector copyOfRange(int from,
                                    int to)

      Copies the specified range of the vector into a new vector.
      Specified by:
        `copyOfRange` in interface `Vector`
      Parameters:
        `from` - the initial index of the range to be copied, inclusive
        `to` - the final index of the range to be copied, exclusive. (This index may lie outside the array.)
      Returns:
        A new vector containing the specified range from the original vector

    - #### dotSelf

          protected double dotSelf()

      Returns:
        Result of dot with self.

    - #### getElement

          public Vector.Element getElement(int idx)

      Gets element at the given index. NOTE: implementation can choose to reuse `Vector.Element` instance so you need to copy it if you want to retain it outside of iteration.
      Specified by:
        `getElement` in interface `Vector`
      Parameters:
        `idx` - Element's index.
      Returns:
        Vector's element at the given index.

    - #### writeExternal

          public void writeExternal(ObjectOutput out)
                             throws IOException

      Specified by:
        `writeExternal` in interface `Externalizable`
      Throws:
        `IOException`

    - #### readExternal

          public void readExternal(ObjectInput in)
                            throws IOException,
                                   ClassNotFoundException

      Specified by:
        `readExternal` in interface `Externalizable`
      Throws:
        `IOException`
        `ClassNotFoundException`

    - #### destroy

          public void destroy()

      Destroys object if managed outside of JVM. It's a no-op in all other cases.
      Specified by:
        `destroy` in interface `Destroyable`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals(Object obj)

      Overrides:
        `equals` in class `Object`

    - #### compute

          public void compute(int idx,
                              IgniteIntDoubleToDoubleBiFunction f)

      Replace vector entry with value oldVal at i with result of computing f(i, oldVal).
      Specified by:
        `compute` in interface `Vector`
      Parameters:
        `idx` - Position.
        `f` - Function used for replacing.

2020 Copyright © Apache Software Foundation
| Follow @ApacheIgnite
Ignite Database and Caching Platform | : ver. 2.9.0
Release Date | : October 15 2020