Re: arbitrary dimension array for math
"Dimitri Ognibene" <dimitri.ognibene@gmail.com> writes:
I'm writing the code but it is rather complicated, and so it's cool,
but it could be useful to have some example.
I wrote the following code as an example to show how to
dynamically create and fill an arrays whose arbitrary
extensions and arbitrary dimension is only known at run-time.
Here it is suppossed to have 3 dimensions with extensions 4,
5, and 6, respectively.
public class Main
{
public static int[] cdr( final int[] list )
{ return java.util.Arrays.copyOfRange( list, 1, list.length ); }
public static java.lang.Object build( final int ... extensions )
{ final java.lang.Object array = java.lang.reflect.Array.newInstance
( java.lang.Integer.TYPE, extensions );
for( int i = 0; i < extensions[ 0 ]; ++i )if( extensions.length > 1 )
java.lang.reflect.Array.set( array, i, build( cdr( extensions )));
else java.lang.reflect.Array.setInt(( int[] )array, i, i );
return array; }
public static void print( final java.lang.Object array )
{ for( int i = 0; i < java.lang.reflect.Array.getLength( array ); ++i )
if( array.getClass().getName().startsWith( "[[" ))
print( java.lang.reflect.Array.get( array, i )); else
java.lang.System.out.print( java.lang.reflect.Array.getInt( array, i )); }
public static void main( final java.lang.String[] args )
{ print( build( 4, 5, 6 )); }}
012345012345012345012345012345012345012345012345012345012345012345012345012345012345012345012345012345012345012345012345