Package ucar.ma2
Class ArrayChar
- java.lang.Object
-
- ucar.ma2.Array
-
- ucar.ma2.ArrayChar
-
- Direct Known Subclasses:
ArrayChar.D0,ArrayChar.D1,ArrayChar.D2,ArrayChar.D3,ArrayChar.D4,ArrayChar.D5,ArrayChar.D6,ArrayChar.D7
public class ArrayChar extends Array implements Iterable<String>
Concrete implementation of Array specialized for chars. Data storage is with 1D java array of chars. issues: what should we do if a conversion loses accuracy? nothing ? Exception ?- See Also:
Array
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classArrayChar.D0Concrete implementation of Array specialized for char, rank 0.static classArrayChar.D1Concrete implementation of Array specialized for char, rank 1.static classArrayChar.D2Concrete implementation of Array specialized for char, rank 2.static classArrayChar.D3Concrete implementation of Array specialized for char, rank 3.static classArrayChar.D4Concrete implementation of Array specialized for char, rank 4.static classArrayChar.D5Concrete implementation of Array specialized for char, rank 5.static classArrayChar.D6Concrete implementation of Array specialized for char, rank 6.static classArrayChar.D7Concrete implementation of Array specialized for char, rank 7.classArrayChar.StringIteratorrank must be > 0
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcopyFrom1DJavaArray(IndexIterator iter, Object javaArray)protected voidcopyTo1DJavaArray(IndexIterator iter, Object javaArray)protected ArraycreateView(Index index)create new Array with given indexImpl and same backing storecharget(Index i)get the value at the specified index.booleangetBoolean(int index)booleangetBoolean(Index i)not legal, throw ForbiddenConversionExceptionbytegetByte(int index)bytegetByte(Index i)Get the array element at the current element of ima, as a byte.chargetChar(int index)chargetChar(Index i)Get the array element at the current element of ima, as a char.ByteBuffergetDataAsByteBuffer()Trasfer data to a ByteBuffer.doublegetDouble(int index)doublegetDouble(Index i)Get the array element at the current element of ima, as a double.ClassgetElementType()Return the element class typefloatgetFloat(int index)floatgetFloat(Index i)Get the array element at the current element of ima, as a float.intgetInt(int index)intgetInt(Index i)Get the array element at the current element of ima, as a int.longgetLong(int index)longgetLong(Index i)Get the array element at the current element of ima, as a long.ObjectgetObject(int index)ObjectgetObject(Index i)Get the array element at index as an Object.shortgetShort(int index)shortgetShort(Index i)Get the array element at the current element of ima, as a short.ObjectgetStorage()Get underlying primitive array storage.StringgetString()Create a String out of this rank one ArrayChar object.StringgetString(int index)Create a String out of this rank two ArrayChar object.StringgetString(Index ima)Create a String out of this ArrayChar object.ArrayChar.StringIteratorgetStringIterator()Treat this Variable as an array of Strings, and iterate over all the strings in the array.Iterator<String>iterator()ArrayObjectmake1DStringArray()Make this into the equivilent 1D ArrayObject of Strings.static ArrayCharmakeFromString(String s, int max)Create an ArrayChar from a Stringstatic ArrayCharmakeFromStringArray(ArrayObject values)Create an ArrayChar from an ArrayObject of Strings.static ArrayCharmakeFromStringArray(ArrayObject values, int strlen)Create an ArrayChar from an ArrayObject of Strings.voidset(Index i, char value)set the value at the sepcified index.voidsetBoolean(int index, boolean value)voidsetBoolean(Index i, boolean value)not legal, throw ForbiddenConversionExceptionvoidsetByte(int index, byte value)voidsetByte(Index i, byte value)Set the array element at the current element of ima.voidsetChar(int index, char value)voidsetChar(Index i, char value)Set the array element at the current element of ima.voidsetDouble(int index, double value)voidsetDouble(Index i, double value)Set the array element at the current element of ima.voidsetFloat(int index, float value)voidsetFloat(Index i, float value)Set the array element at the current element of ima.voidsetInt(int index, int value)voidsetInt(Index i, int value)Set the array element at the current element of ima.voidsetLong(int index, long value)voidsetLong(Index i, long value)Set the array element at the current element of ima.voidsetObject(int index, Object value)voidsetObject(Index i, Object value)Set the array element at index to the specified value.voidsetShort(int index, short value)voidsetShort(Index i, short value)Set the array element at the current element of ima.voidsetString(int index, String val)Set the ArrayChar values from the characters in the String.voidsetString(String val)Set the ArrayChar values from the characters in the String.voidsetString(Index ima, String val)Set the ArrayChar values from the characters in the String.StringtoString()-
Methods inherited from class ucar.ma2.Array
arraycopy, copy, copyTo1DJavaArray, copyToNDJavaArray, factory, factory, factory, factory, factoryConstant, factoryCopy, flip, get1DJavaArray, get1DJavaArray, getDataAsByteBuffer, getDataAsByteBuffer, getDataType, getIndex, getIndexIterator, getRangeIterator, getRank, getShape, getSize, getSizeBytes, hasNext, isConstant, isUnsigned, isVlen, makeArray, makeArray, makeArray, makeArrayRankPlusOne, makeFromJavaArray, makeFromJavaArray, makeObjectArray, makeVlenArray, next, nextBoolean, nextByte, nextChar, nextDouble, nextFloat, nextInt, nextLong, nextShort, permute, reduce, reduce, resetLocalIterator, reshape, reshapeNoCopy, section, section, section, sectionNoReduce, sectionNoReduce, shapeToString, slice, transpose
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
ArrayChar
public ArrayChar(int[] dimensions)
Create a new Array of type char and the given shape. dimensions.length determines the rank of the new Array.- Parameters:
dimensions- the shape of the Array.
-
ArrayChar
public ArrayChar(String s)
-
-
Method Detail
-
createView
protected Array createView(Index index)
create new Array with given indexImpl and same backing store- Specified by:
createViewin classArray- Parameters:
index- use this Index- Returns:
- a view of the Array using the given Index
-
getStorage
public Object getStorage()
Description copied from class:ArrayGet underlying primitive array storage. Exposed for efficiency, use at your own risk.- Specified by:
getStoragein classArray- Returns:
- underlying primitive array storage
-
copyFrom1DJavaArray
protected void copyFrom1DJavaArray(IndexIterator iter, Object javaArray)
- Specified by:
copyFrom1DJavaArrayin classArray
-
copyTo1DJavaArray
protected void copyTo1DJavaArray(IndexIterator iter, Object javaArray)
- Specified by:
copyTo1DJavaArrayin classArray
-
getDataAsByteBuffer
public ByteBuffer getDataAsByteBuffer()
Trasfer data to a ByteBuffer. Note we cast char to byte, discarding top byte, if any. This is because CDM char is really a byte, not a java char.- Overrides:
getDataAsByteBufferin classArray- Returns:
- data in a ByteBuffer
-
getElementType
public Class getElementType()
Return the element class type- Specified by:
getElementTypein classArray- Returns:
- the class of the element
-
get
public char get(Index i)
get the value at the specified index.
-
set
public void set(Index i, char value)
set the value at the sepcified index.
-
getDouble
public double getDouble(Index i)
Description copied from class:ArrayGet the array element at the current element of ima, as a double.
-
setDouble
public void setDouble(Index i, double value)
Description copied from class:ArraySet the array element at the current element of ima.
-
getFloat
public float getFloat(Index i)
Description copied from class:ArrayGet the array element at the current element of ima, as a float.
-
setFloat
public void setFloat(Index i, float value)
Description copied from class:ArraySet the array element at the current element of ima.
-
getLong
public long getLong(Index i)
Description copied from class:ArrayGet the array element at the current element of ima, as a long.
-
setLong
public void setLong(Index i, long value)
Description copied from class:ArraySet the array element at the current element of ima.
-
getInt
public int getInt(Index i)
Description copied from class:ArrayGet the array element at the current element of ima, as a int.
-
setInt
public void setInt(Index i, int value)
Description copied from class:ArraySet the array element at the current element of ima.
-
getShort
public short getShort(Index i)
Description copied from class:ArrayGet the array element at the current element of ima, as a short.
-
setShort
public void setShort(Index i, short value)
Description copied from class:ArraySet the array element at the current element of ima.
-
getByte
public byte getByte(Index i)
Description copied from class:ArrayGet the array element at the current element of ima, as a byte.
-
setByte
public void setByte(Index i, byte value)
Description copied from class:ArraySet the array element at the current element of ima.
-
getChar
public char getChar(Index i)
Description copied from class:ArrayGet the array element at the current element of ima, as a char.
-
setChar
public void setChar(Index i, char value)
Description copied from class:ArraySet the array element at the current element of ima.
-
getBoolean
public boolean getBoolean(Index i)
not legal, throw ForbiddenConversionException- Specified by:
getBooleanin classArray- Parameters:
i- Index with current element set- Returns:
- value at
indexcast to boolean if necessary.
-
setBoolean
public void setBoolean(Index i, boolean value)
not legal, throw ForbiddenConversionException- Specified by:
setBooleanin classArray- Parameters:
i- Index with current element setvalue- the new value; cast to underlying data type if necessary.
-
getObject
public Object getObject(Index i)
Description copied from class:ArrayGet the array element at index as an Object. The returned value is wrapped in an object, eg Double for double
-
setObject
public void setObject(Index i, Object value)
Description copied from class:ArraySet the array element at index to the specified value. the value must be passed wrapped in the appropriate Object (eg Double for double)
-
getString
public String getString()
Create a String out of this rank one ArrayChar object. If there is a null (0) value in the ArrayChar array, the String will end there. The null is not returned as part of the String.- Returns:
- String value of CharArray
- Throws:
IllegalArgumentException- if rank != 1
-
getString
public String getString(int index)
Create a String out of this rank two ArrayChar object. This treats the ArrayChar as a 1D array of Strings. If there is a null (0) value in the ArrayChar array, the String will end there. The null is not returned as part of the String.- Parameters:
index- index into 1D String array, must be < getShape(0).- Returns:
- String value
- Throws:
IllegalArgumentException- if rank != 2
-
getString
public String getString(Index ima)
Create a String out of this ArrayChar object. The rank must be 1 or greater. If there is a null (0) value in the ArrayChar array, the String will end there. The null is not returned as part of the String. If rank=1, then this will make a string out of the entire CharArray, ignoring ima. If rank is greater than 1, then make a String out of the characters of the last dimension, indexed by ima. This method treats the CharArray like an array of Strings, and allows you to iterate over them, eg for a 2D ArrayChar:ArrayChar ca; Index ima = ca.getIndex(); for (int i=0; i- Parameters:
ima- the Index of where in the Array to start.- Returns:
- String value of CharArray
- Throws:
IllegalArgumentException- if rank != 1
-
setString
public void setString(String val)
Set the ArrayChar values from the characters in the String. Rank must be 1. If String longer than ArrayChar, ignore extra chars; if shorter, fill with 0.- Parameters:
val- set characters from this String- Throws:
IllegalArgumentException- if rank != 2
-
setString
public void setString(int index, String val)Set the ArrayChar values from the characters in the String. Rank must be 2. This treats the ArrayChar as a 1D array of Strings. If String val longer than ArrayChar, ignore extra chars; if shorter, fill with 0.String[] val = new String[n]; ArrayChar ca; Index ima = ca.getIndex(); for (int i=0; i- Parameters:
index- index into 1D String array, must be < getShape(0).val- set chars from this sString
-
setString
public void setString(Index ima, String val)
Set the ArrayChar values from the characters in the String. Rank must be 1 or greater. If String longer than ArrayChar, ignore extra chars; if shorter, fill with 0. If rank 1, set entire ArrayChar, ignoring ima. If rank > 1, treat the ArrayChar like an array of Strings of rank-1, and set the row indexed by ima. For example, rank 3:String[][] val; ArrayChar ca; Index ima = ca.getIndex(); int rank0 = ca.getShape()[0]; int rank1 = ca.getShape()[1]; for (int i=0; i- Parameters:
ima- the Index of where in the Array to start.val- set to this value
-
getBoolean
public boolean getBoolean(int index)
- Specified by:
getBooleanin classArray
-
setBoolean
public void setBoolean(int index, boolean value)- Specified by:
setBooleanin classArray
-
getStringIterator
public ArrayChar.StringIterator getStringIterator()
Treat this Variable as an array of Strings, and iterate over all the strings in the array. If rank == 0, will make single String of length 1.- Returns:
- Iterator over Strings.
-
make1DStringArray
public ArrayObject make1DStringArray()
Make this into the equivilent 1D ArrayObject of Strings.- Returns:
- 1D ArrayObject of Strings
-
makeFromString
public static ArrayChar makeFromString(String s, int max)
Create an ArrayChar from a String- Parameters:
s- Stringmax- maximum length- Returns:
- equivilent ArrayChar
-
makeFromStringArray
public static ArrayChar makeFromStringArray(ArrayObject values)
Create an ArrayChar from an ArrayObject of Strings.- Parameters:
values- ArrayObject of String- Returns:
- equivilent ArrayChar, using maximum length of String. Unused are zero filled.
-
makeFromStringArray
public static ArrayChar makeFromStringArray(ArrayObject values, int strlen)
Create an ArrayChar from an ArrayObject of Strings. Inverse of make1DStringArray. Copies the data.- Parameters:
values- ArrayObject of Stringstrlen- string length dimension size- Returns:
- equivilent ArrayChar. Unused are zero filled.
-
-