Auf Array in 2D Array referenzieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Auf Array in 2D Array referenzieren

    Hallo beisammen,
    ich bin gerade dabei, mich ein bisschen mit 2 dimensionalen Arrays rumzuschlagen.

    nun würde ich gerne auf die einzelnen Zeilen, bzw Spalten referenzieren, und sie bearbeiten.

    z.B. hab ich dieses Konstrukt:

    Quellcode

    1. int[][] pool = {{1,2,3,4},
    2. {5,6,7,8},
    3. {9,10,11,12},
    4. {13,14,15,16}}



    So, Wenn ich in einer einfachen for-Schleife nun darüber gehe, kann ich ja z.B. via
    "System.out.print (pool[1][x])" die 2. Zeile ausgeben lassen.

    Wie kann ich mir jetzt aber u.a. Summe der 4 Elemente errechnen lassen?
    Wo kommt die 2. For-Schleife hin?

    Anders gefragt : Ich will nur auf die Elemente in der ersten / zweiten / dritten / vierten Zeile zugreifen?


    Vielen Dank
  • meinst du so :)?

    Quellcode

    1. public static void main(String[] args) {
    2. int[][] pool = {{1,2,3,4},
    3. {5,6,7,8},
    4. {9,10,11,12},
    5. {13,14,15,16}};
    6. int sum = 0;
    7. for(int i=0; i<pool.length;i++) {
    8. sum=0;
    9. for (int j=0; j<pool[i].length; j++) {
    10. sum += pool[i][j];
    11. }
    12. System.out.println(sum);
    13. }
    14. }
    Alles anzeigen

    Ausgabe:

    Quellcode

    1. 10
    2. 26
    3. 42
    4. 58
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • Sorry, aber ich muss nochmal nerven.

    Welchen Parameter muss ich editieren, wenn ich z.B. nur die zweite Zeile ausgegeben haben will ?
    Genauso wie die Summe der 2. Spalte?


    ciao


    //edit: ähhh achso, muss einfach nur den Start und Endwert der Schleife verändern. fehlt mir nurnoch der Spaß bei den Spalten..

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von kingele ()

  • Hi,
    dir auch, danke!


    aber dein Methode macht doch genau das Selbe wie die o.g., oder irre ich mich ?


    ciao

    //edit:

    i dont get it..

    Quellcode

    1. public static void main(String[] args) {
    2. int[][] pool = {{1,2,3,4},
    3. {5,6,7,8},
    4. {9,10,11,12},
    5. {13,14,15,16}};
    6. int sum = 0;
    7. int col = 1;
    8. for(int i=0; i<pool.length;i++) {
    9. for (int j=col; j == col; j++) {
    10. sum += pool[i][j];
    11. }
    12. System.out.println(sum);
    13. }
    14. }
    Alles anzeigen


    so kann ich nur drauf zugreifen, aber wie kann ich sie addieren?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von kingele ()

  • Lemon schrieb:



    meinst du so? *frohes neues
    nettes forum hi :P

    aber nicht gerade toll gemacht,
    frag mich nur wozu du die außere schleife brauchst, wenn du da beim ersten Durchlauf rausgehst ?(

    Quellcode

    1. public int berechnezeile(int r)
    2. {
    3. int sum=0;
    4. for (int j=0; j<pool[r].length; j++) {
    5. sum += pool[r][j];
    6. }
    7. System.out.println(sum);
    8. return sum;
    9. }
    Alles anzeigen


    kingele schrieb:

    Hi,
    dir auch, danke!


    aber dein Methode macht doch genau das Selbe wie die o.g., oder irre ich mich ?


    ciao

    nein die macht was anderes, wenn du was lernen willst, solltest du selbst mal einbisschen experementieren
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • kingele schrieb:



    i dont get it..

    Quellcode

    1. public static void main(String[] args) {
    2. int[][] pool = {{1,2,3,4},
    3. {5,6,7,8},
    4. {9,10,11,12},
    5. {13,14,15,16}};
    6. int sum = 0;
    7. int col = 1;
    8. for(int i=0; i<pool.length;i++) {
    9. for (int j=col; j == col; j++) {
    10. sum += pool[i][j];
    11. }
    12. System.out.println(sum);
    13. }
    14. }
    Alles anzeigen


    so kann ich nur drauf zugreifen, aber wie kann ich sie addieren?


    Was genau möchtest du da addieren?

    Quellcode

    1. Das ist schwachsinn :)
    2. int col = 1;
    3. for (int j=col; j == col; j++) {

    Du sagts col ist gleich 1 und j ist gleich col, daraus folg, das j auch 1 ist
    und dann fragst du ab ob die gleich sind, also läuft deine schleife nur ein mal und dafür frauchst du keine schleife.
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • Wenn du j erhöhst dann ist die bedienung j==col nicht mehr wahr also wird die schleife nicht ausgeführt

    um spaltenweise zu addieren musst du nur i und j vertauschen und dann hast du den salat :) also so:

    Quellcode

    1. int sum=0;
    2. for(int i=0; i<pool.length; i++) {
    3. sum =0;
    4. for (int j=0; j<pool[i].length; j++) {
    5. sum += pool[j][i];
    6. }
    7. System.out.println(sum);
    8. }
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • shureg schrieb:

    Wenn du j erhöhst dann ist die bedienung j==col nicht mehr wahr also wird die schleife nicht ausgeführt


    mh. läuft aber...

    ->

    Quellcode

    1. public static void main(String[] args) {
    2. int[][] pool = {{1,2,3,4},
    3. {5,6,7,8},
    4. {9,10,11,12},
    5. {13,14,15,16}};
    6. int sum=0;
    7. int col = 0;
    8. int row = 0;
    9. for(int i=row; i == row; i++) {
    10. sum =0;
    11. for (int j=0; j<pool[i].length; j++) {
    12. sum += pool[j][i];
    13. }
    14. System.out.println(sum + "/n");
    15. }
    16. int summe = 0;
    17. for(int i=col; i == col;i++) {
    18. for (int j=0; j<pool[i].length; j++) {
    19. summe += pool[i][j];
    20. }
    21. System.out.println(summe);
    22. }
    23. }
    Alles anzeigen


    ciao



    //einschub: achso, ich sehe grade, dass du einen Lesefehler hast. ich habe unten garnicht gesagt, dass i ungleich col ist.
  • kingele schrieb:

    mh. läuft aber...

    Wenn du so denkst, dann solltest du die Finger vom Programmieren lassen ;) Denn deine Software wird nicht gekauft :)
    Es soll nicht nur laufen sonderen auch effizient sein.
    Und so eine Schleife

    Quellcode

    1. for(int i=row; i == row; i++) {

    ist alles andere als gut, wenn du einfach nur i erhöhen willst brauchst du keine schleife
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • aber wie soll ich sonst auf die Summe der 1. Zeile zugreifen, bzw. mir allgemein von einen 2D Array die aktuelle Zeilennummer ausgeben lassen, wenn ich keine Schleife benutze?
    mit dem "läuft aber", war natürlich nicht gemeint, dass es mir reicht. Ich hatte deinen o.g. Post so verstanden, dass es eben nicht funktionieren kann ;)


    Ich weiß, ich hab noch viell vor mir!