Die Aufgabe ist
eine Methode Implementieren "void removeEntry(int[][] workArray, int col)"
Diese Methode entfernt aus jeder Zeile von workArray das Element mit dem Spaltenindex
col. Dadurch wird die Länge der entsprechenden Zeile um 1 kleiner. Ist an einem Spaltenindex
kein Element vorhanden, soll die Zeile nicht verändert werden. Dafür wird das Array
workArray umgebaut und kein neues Array erstellt. Sie dürfen aber innerhalb der Methode
ein temporäres Hilfs-Array anlegen.
Einzige was kann ich nicht schaffen ist 0 weglassen die bei manchen rauskommt
eine Methode Implementieren "void removeEntry(int[][] workArray, int col)"
Diese Methode entfernt aus jeder Zeile von workArray das Element mit dem Spaltenindex
col. Dadurch wird die Länge der entsprechenden Zeile um 1 kleiner. Ist an einem Spaltenindex
kein Element vorhanden, soll die Zeile nicht verändert werden. Dafür wird das Array
workArray umgebaut und kein neues Array erstellt. Sie dürfen aber innerhalb der Methode
ein temporäres Hilfs-Array anlegen.
Java:
private static void removeEntry(int[][] workArray, int col) {
int row = workArray.length;
//länge von größte Reihe berechnen
int max = 0;
int tempNum = 0;
for (int[] ints : workArray) {
tempNum = 0;
for (int j = 0; j < ints.length; j++) {
tempNum++;
if (tempNum > max) {
max = tempNum;
}
}
}
//neues Array wird um 1 Spalte kleiner
int [][] newArray = new int[row][max];
for(int i = 0; i < row; i++) {
for(int j = 0; j < max; j++) {
if(j < col && j < workArray[I].length) {
newArray[I][j] = workArray[I][j];
}else if (j == col) {
// Do nothing
} else if (j > col && j < workArray[I].length) {
newArray[I][j - 1] = workArray[I][j];
}
}
}
for (int i = 0; i < workArray.length; i++) {
for (int j = 0; j < workArray[I].length; j++) {
workArray[I][j] = newArray[I][j];
}
}
int remIndex = 0;
for (int i = 0; i < workArray.length; i++) {
for (int j = remIndex; j < workArray[I].length-1; j++) {
if(workArray[I][j] == remIndex){
workArray[I][j] = workArray[I][j + 1];
}
}
}