1
Name:
Anonymous
2007-01-16 10:27
can someone tell me how to copy a 2 dimensional array to a 1 dimensional one? Ie.
array:
{2, 3, 5}
{4, 7, 9}
should become {2, 3, 5, 4, 7, 9}
44
Name:
Anonymous
2011-01-06 23:02
I fixed
>>5 's code so it works for all primitives. HTH HAND
public static int[] flattenIntArray( int[][] inArray ) {
int elemCount = 0;
for ( int[] x : inArray )
elemCount += x.length;
int[] newArray = new int[ elemCount ]; // this line won't work, because Java's generics are AIDS infested.
int elemIdx = 0;
for ( int[] x : inArray )
for ( int y : x )
newArray[ elemIdx++ ] = y;
return newArray;
}
public static char[] flattenCharArray( char[][] inArray ) {
int elemCount = 0;
for ( char[] x : inArray )
elemCount += x.length;
char[] newArray = new char[ elemCount ]; // this line won't work, because Java's generics are AIDS infested.
int elemIdx = 0;
for ( char[] x : inArray )
for ( char y : x )
newArray[ elemIdx++ ] = y;
return newArray;
}
public static long[] flattenLongArray( long[][] inArray ) {
int elemCount = 0;
for ( long[] x : inArray )
elemCount += x.length;
long[] newArray = new long[ elemCount ]; // this line won't work, because Java's generics are AIDS infested.
int elemIdx = 0;
for ( long[] x : inArray )
for ( long y : x )
newArray[ elemIdx++ ] = y;
return newArray;
}
public static double[] flattenDoubleArray( double[][] inArray ) {
int elemCount = 0;
for ( double[] x : inArray )
elemCount += x.length;
double[] newArray = new double[ elemCount ]; // this line won't work, because Java's generics are AIDS infested.
int elemIdx = 0;
for ( double[] x : inArray )
for ( double y : x )
newArray[ elemIdx++ ] = y;
return newArray;
}
public static boolean[] flattenBooleanArray( boolean[][] inArray ) {
int elemCount = 0;
for ( boolean[] x : inArray )
elemCount += x.length;
boolean[] newArray = new boolean[ elemCount ]; // this line won't work, because Java's generics are AIDS infested.
int elemIdx = 0;
for ( boolean[] x : inArray )
for ( boolean y : x )
newArray[ elemIdx++ ] = y;
return newArray;
}
public static byte[] flattenByteArray( byte[][] inArray ) {
int elemCount = 0;
for ( byte[] x : inArray )
elemCount += x.length;
byte[] newArray = new byte[ elemCount ]; // this line won't work, because Java's generics are AIDS infested.
int elemIdx = 0;
for ( byte[] x : inArray )
for ( byte y : x )
newArray[ elemIdx++ ] = y;
return newArray;
}
public static short[] flattenShortArray( short[][] inArray ) {
int elemCount = 0;
for ( short[] x : inArray )
elemCount += x.length;
short[] newArray = new short[ elemCount ]; // this line won't work, because Java's generics are AIDS infested.
int elemIdx = 0;
for ( short[] x : inArray )
for ( short y : x )
newArray[ elemIdx++ ] = y;
return newArray;
}
Bringing /prog/ back to its people
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy