Class IntegerArray
- java.lang.Object
-
- elki.utilities.datastructures.arraylike.IntegerArray
-
- All Implemented Interfaces:
ArrayAdapter<java.lang.Integer,IntegerArray>,NumberArrayAdapter<java.lang.Integer,IntegerArray>
public class IntegerArray extends java.lang.Object implements NumberArrayAdapter<java.lang.Integer,IntegerArray>
Array of int values (primitive, avoiding the boxing overhead of ArrayList). This class is generated from a code template.
- Since:
- 0.7.0
- Author:
- Erich Schubert
-
-
Field Summary
Fields Modifier and Type Field Description int[]data(Reused) store for numerical attributes.private static intLAST_GROW_SIZELast value where we can grow by 50%.private static intMAX_ARRAY_SIZEMaximum array size permitted by Java.intsizeNumber of numerical attributes.
-
Constructor Summary
Constructors Constructor Description IntegerArray()Constructor.IntegerArray(int initialsize)Constructor.IntegerArray(IntegerArray existing)Constructor from an existing array.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int attribute)Append a value.voidclear()Reset the numeric attribute counter.intget(int pos)Get the value at this position.java.lang.Integerget(IntegerArray array, int off)Get the off'th item from the array.bytegetByte(IntegerArray array, int off)Get the off'th item from the array as byte.doublegetDouble(IntegerArray array, int off)Get the off'th item from the array as double.floatgetFloat(IntegerArray array, int off)Get the off'th item from the array as float.intgetInteger(IntegerArray array, int off)Get the off'th item from the array as integer.longgetLong(IntegerArray array, int off)Get the off'th item from the array as long.shortgetShort(IntegerArray array, int off)Get the off'th item from the array as short.private voidgrow()Grow the current array.voidinsert(int pos, int val)Insert a value at the given position.booleanisEmpty()Test if the array is empty.voidremove(int start, int len)Remove a range from the array.voidset(int pos, int value)Set the value at this position.intsize()Get the size of the array.intsize(IntegerArray array)Get the size of the array.voidsort()Sort the contents.voidswap(int p1, int p2)Swap two values.int[]toArray()Return a copy of the contents as array.
-
-
-
Field Detail
-
MAX_ARRAY_SIZE
private static final int MAX_ARRAY_SIZE
Maximum array size permitted by Java.This is JVM dependent, but 2^31 - 5 is the usual OpenJDK8 value.
- See Also:
- Constant Field Values
-
LAST_GROW_SIZE
private static final int LAST_GROW_SIZE
Last value where we can grow by 50%.- See Also:
- Constant Field Values
-
data
public int[] data
(Reused) store for numerical attributes.
-
size
public int size
Number of numerical attributes.
-
-
Constructor Detail
-
IntegerArray
public IntegerArray()
Constructor.
-
IntegerArray
public IntegerArray(int initialsize)
Constructor.- Parameters:
initialsize- Initial size.
-
IntegerArray
public IntegerArray(IntegerArray existing)
Constructor from an existing array.The new array will be allocated as small as possible, so modifications will cause a resize!
- Parameters:
existing- Existing array
-
-
Method Detail
-
clear
public void clear()
Reset the numeric attribute counter.
-
add
public void add(int attribute)
Append a value.- Parameters:
attribute- Attribute value.
-
grow
private void grow() throws java.lang.OutOfMemoryErrorGrow the current array.- Throws:
java.lang.OutOfMemoryError
-
get
public int get(int pos)
Get the value at this position.- Parameters:
pos- Position- Returns:
- Value
-
set
public void set(int pos, int value)Set the value at this position.- Parameters:
pos- Positionvalue- Value
-
swap
public void swap(int p1, int p2)Swap two values.- Parameters:
p1- First positionp2- Second position
-
remove
public void remove(int start, int len)Remove a range from the array.- Parameters:
start- Startlen- Length
-
insert
public void insert(int pos, int val)Insert a value at the given position.- Parameters:
pos- Insert positionval- Value to insert
-
size
public int size()
Get the size of the array.- Returns:
- Size
-
isEmpty
public boolean isEmpty()
Test if the array is empty.- Returns:
trueif empty.
-
sort
public void sort()
Sort the contents.
-
size
public int size(IntegerArray array)
Description copied from interface:ArrayAdapterGet the size of the array.- Specified by:
sizein interfaceArrayAdapter<java.lang.Integer,IntegerArray>- Specified by:
sizein interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array-like thing- Returns:
- Size
-
get
public java.lang.Integer get(IntegerArray array, int off) throws java.lang.IndexOutOfBoundsException
Description copied from interface:ArrayAdapterGet the off'th item from the array.- Specified by:
getin interfaceArrayAdapter<java.lang.Integer,IntegerArray>- Specified by:
getin interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array to get fromoff- Offset- Returns:
- Item at offset off
- Throws:
java.lang.IndexOutOfBoundsException- for an invalid index.
-
getDouble
public double getDouble(IntegerArray array, int off) throws java.lang.IndexOutOfBoundsException
Description copied from interface:NumberArrayAdapterGet the off'th item from the array as double.- Specified by:
getDoublein interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array to get fromoff- Offset- Returns:
- Item at offset off
- Throws:
java.lang.IndexOutOfBoundsException- for an invalid index.
-
getFloat
public float getFloat(IntegerArray array, int off) throws java.lang.IndexOutOfBoundsException
Description copied from interface:NumberArrayAdapterGet the off'th item from the array as float.- Specified by:
getFloatin interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array to get fromoff- Offset- Returns:
- Item at offset off
- Throws:
java.lang.IndexOutOfBoundsException- for an invalid index.
-
getInteger
public int getInteger(IntegerArray array, int off) throws java.lang.IndexOutOfBoundsException
Description copied from interface:NumberArrayAdapterGet the off'th item from the array as integer.- Specified by:
getIntegerin interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array to get fromoff- Offset- Returns:
- Item at offset off
- Throws:
java.lang.IndexOutOfBoundsException- for an invalid index.
-
getShort
public short getShort(IntegerArray array, int off) throws java.lang.IndexOutOfBoundsException
Description copied from interface:NumberArrayAdapterGet the off'th item from the array as short.- Specified by:
getShortin interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array to get fromoff- Offset- Returns:
- Item at offset off
- Throws:
java.lang.IndexOutOfBoundsException- for an invalid index.
-
getLong
public long getLong(IntegerArray array, int off) throws java.lang.IndexOutOfBoundsException
Description copied from interface:NumberArrayAdapterGet the off'th item from the array as long.- Specified by:
getLongin interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array to get fromoff- Offset- Returns:
- Item at offset off
- Throws:
java.lang.IndexOutOfBoundsException- for an invalid index.
-
getByte
public byte getByte(IntegerArray array, int off) throws java.lang.IndexOutOfBoundsException
Description copied from interface:NumberArrayAdapterGet the off'th item from the array as byte.- Specified by:
getBytein interfaceNumberArrayAdapter<java.lang.Integer,IntegerArray>- Parameters:
array- Array to get fromoff- Offset- Returns:
- Item at offset off
- Throws:
java.lang.IndexOutOfBoundsException- for an invalid index.
-
toArray
public int[] toArray()
Return a copy of the contents as array.- Returns:
- Copy of the contents.
-
-