drei eindimensionale Arrays in ein zweidimensionales Array

katchy

Aktives Mitglied
Hey 🙂
ich schon wieder 😀
bei meiner jetzigen Aufgabe soll ich drei eindimensionale Arrays in ein 2 dimensionales Array umwandelt. Dabei sollen die eindimensionalen Arrays jeweils die Zeilen des mehrdimensionalen Arrays bilden.
Ich steh gerade total auf dem Schlauch und weiß irgendwie garnicht wie ich so richtig anfangen soll.
Mein Code sieht bis lang so aus:

Code:
static int [][] mehrDimensionalesArray (int[]array1, int[]array2, int[]array3){
        int n = 3;
        int [][] matrix = new int [n][n];
       
        int i = 0;
            for (int j=0; j<n;j++){
            matrix [i][j] = array1 [j];
            matrix [i+1][j] = array2 [j];
            matrix [i+2][j] = array3 [j];
               
        }
        return matrix;
    }

ich weiß dass das total falsch ist, weiß aber nicht wie ich das richtiger machen sollte, habt ihr vllt eine Idee oder einen Tipp für mich?

Liebe Grüßchen
Katchy
 
Wie wärs mit:
Java:
static int [][] mehrDimensionalesArray (int[]array1, int[]array2, int[]array3){
  return new int[][]{array1, array2, array3};
}
Wenn du die Werte auch noch kopieren musst, dann klone die Arrays noch
Java:
static int [][] mehrDimensionalesArray (int[]array1, int[]array2, int[]array3){
  return new int[][]{array1.clone(), array2.clone(), array3.clone()};
}
 
Java:
static int [][] mehrDimensionalesArray (int[]array1, int[]array2, int[]array3){
              return new int[][]{array1, array2, array3};
    }
    public static void main (String [] args){
        int []array4 = {1,2,3};
        int []array5 = {1,20,1};
        int []array6 = {3,4,4};
        IO.println (mehrDimensionalesArray(array4,array5,array6));

Warum kommt da trotzdem nur Mist bei raus 😀?
Arrays sind nicht so meine Stärke, da muss ich noch einiges lernen
 
So kannst du sie z.B. durchlaufen:

Java:
int [][] arr = mehrDimensionalesArray(a1,a2,a3);
for (int i = 0; i < arr.length; i++) {

        System.out.println("Line: "+(i+1));

        for (int j = 0; j < arr[i].length; j++) {

            System.out.println(arr[i][j]);

        }
}
 
Zuletzt bearbeitet:
Ich habe nur den Inhalt des zweidimensionalen Arrays ausgegeben.

Du kannst es ja auch anders ausgeben lassen.
Bsp:
1D-2D
1 - 2,3
4 - 5,6
7 - 8,9

Wenn du es so lieber willst

Java:
for (int i = 0; i < arr.length; i++) {

    System.out.print(arr[i][0]+" - ");
    for (int j = 1; j < arr[i].length; j++) {

        System.out.print(arr[i][j]);
        if(j < arr[i].length-1){
            System.out.print(", ");
        }else{
            System.out.print("");
        }

    }
    System.out.println();
}
 
Zuletzt bearbeitet:
Oder einfach so:
Java:
import java.util.Arrays;

public class Test {
  public static void main(String... args) {
    System.out.println(Arrays.deepToString(mehrDimensionalesArray(new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 }, new int[] { 7, 8, 9 })));
  }
  
  static int[][] mehrDimensionalesArray(int[] array1, int[] array2, int[] array3) {
    return new int[][] { array1, array2, array3 };
  }
  
}
 
Oder einfach so:
Java:
import java.util.Arrays;

public class Test {
  public static void main(String... args) {
    System.out.println(Arrays.deepToString(mehrDimensionalesArray(new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 }, new int[] { 7, 8, 9 })));
  }
 
  static int[][] mehrDimensionalesArray(int[] array1, int[] array2, int[] array3) {
    return new int[][] { array1, array2, array3 };
  }
 
}

Nett. Kannte ich so noch gar nicht 😀 Aber dann würde ich noch die Klammern wegfiltern 😛
 

Zurück
Oben