Java Hilfestellung für eine Aufgabe

Status
Für weitere Antworten geschlossen.
K

KelbSon

Gast
Hallo Leute :)

ich brauche mal eure Hilfe. Und zwar geht es dadrum:" Programmieren Sie eine Klassenmethode serialize(), die ein zweidimensionales int-Array übergeben bekommt und ein eindimensionales int-Array zurück gibt. Das zurückgelieferte int-Array, ist die Zusammenfügung der einzelnen Teilarrays. Zwischen jedem Teilarray ist eine zusätzliche 0 einzufügen.

Bsp: Übergabe = {{1,2,3},{44,55},{-10}}; Rückgabe = {1,2,3,0,44,55,0,-10}

Ich bin soweit, dass ich die Arrays zusammen zurückliefere also = {1,2,3,44,55,-10}

Java:
public class aufg2 {
    public static int[] serialize(int[][] zweiDarray) {
        int[] zusammenArray = new int[zweiDarray.length+zweiDarray.length];
        int counter = 0;
        for(int i = 0; i < zweiDarray.length; ++i) {
            for(int j =0; j < zweiDarray[i].length; ++j) {

//                if(zweiDarray[i].length  )

                    zusammenArray[counter] = zweiDarray[i][j];

                ++counter;
            }
        }       
        return zusammenArray;
    }

    public static void main(String[] args) {
        int[][] zweiDarray = {{1,2,3},{44,55},{-10}};
        serialize(zweiDarray);
        for(int i = 0; i < zweiDarray.length; ++i) {
            for(int j = 0; j < zweiDarray[i].length; ++j) {
                System.out.print(zweiDarray[i][j]+", ");
            }
        }
    }
}
 
Jo und wo ist da jetzt das Problem? ;)

Du baust dir in 3 ja schonmal ein passendes Array zusammen, das ist nur etwas zu klein.
Wenn du dann am Ende deiner inneren for noch jeweils eine 0 reinklatscht, dann bist du schonmal soweit, dass du nach jedem array eine 0 hast. Dann solltest du selbst weiterkommen.

PS: nehm statt dem int[] eine Liste, dann musst du dich noch nichtmal um den counter kümmern...
PS: auch schön wäre es mit System.arraycopy
 
mach doch einfach so:
(Pseudocode)
Code:
result = Empty Array
for every element <inner_array> of 2d_array:
  for every element <number> of inner_array:
    result.push(number)
  end
  result.push(0)
end
result.pop()
return result
 
Punkt 1: Hilfestellung für Aufgaben aus Schule/Ausbildung/Studium ist im Forum nicht gern gesehen. Selbst lösen heißt die Devise. Und wenn du nicht weiterkommst, solltest du dich mit anderen Schülern/Studenten kurzschließen (Stichwort: Lerngruppe)

Punkt 2: Wenn du die Länge des Gesamtarrays errechnest, solltest du darauf achten, dass das 2D-Array 2 verschiedene Längen hat, für jede Dimension eine. Wobei streng genommen jedes Teilarray eine eigene Länge haben kann wie du ja in der "j-Schleife" auch berücksichtigst. Um für jeden Fall gewappnet zu sein, müsste dein Gesamtarray so lang sein wie Anzahl_TeilArrays * Max_Länge_TeilArray. Oder du arbeitest wie vorgeschlagen mit einer List statt einem Array.
 
Raijin schrieb:
Punkt 1: Hilfestellung für Aufgaben aus Schule/Ausbildung/Studium ist im Forum nicht gern gesehen. Selbst lösen heißt die Devise. Und wenn du nicht weiterkommst, solltest du dich mit anderen Schülern/Studenten kurzschließen (Stichwort: Lerngruppe)
So ist es. Daher mache ich hier mal zu.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben