Ich komm hier leider bei einer Aufgabe nicht weiter, da ich nicht verstehe, wie ich das Array füllen kann. Die Aufgabe ist aus einem eindimensionalem Array die ungeraden von den gerade zahlen zu trennen und dann in ein zweidimensionales array zu packen. ( int [] a = {1,2,3,4} soll zu int [] [] b = {{2,4},{1,3}} werden)
ich weiß, dass ich eigentlich die werte so zuweisen müsste :
array[0] für gerade werte
array[1] für ungerade werte
also z.B. array[0][0] für die erste gerade zahl array[0][1] für die zweite usw.
mein code sieht soweit so aus, aber ich weiß nicht, wie ich das mittels for schleife so rein packen kann, dass es kein ArrayIndexOutOfBoundsException gibt .. könntet ihr mir weiter helfen?
ich weiß, dass ich eigentlich die werte so zuweisen müsste :
array[0] für gerade werte
array[1] für ungerade werte
also z.B. array[0][0] für die erste gerade zahl array[0][1] für die zweite usw.
mein code sieht soweit so aus, aber ich weiß nicht, wie ich das mittels for schleife so rein packen kann, dass es kein ArrayIndexOutOfBoundsException gibt .. könntet ihr mir weiter helfen?
Java:
public class EvenZwei {
public static int[][] even (int[] a) {
int count = 0;
for( int i = 0; i<a.length; i++) {
if( a[i] % 2 == 0 ) {
count++;
}
}
int [][] array = new int [2][0];
array[0] = new int [count];
array[1] = new int[a.length-count];
for ( int j = 0 ; j<a.length; j++) {
if( a[j] % 2 == 0) {
array[0][j] = a[j];
} else {
array[1][j] = a[j];
}
} return array;
}
public static void main(String[] args) {
int [] ar = {1,2,2,3,1};
even(ar);
for(int i: ar) System.out.println(i);
}
}