[Java] 2d Array absoluter Index?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Java] 2d Array absoluter Index?

    Hallo zusammen,

    ich sitze hier grade mit nem Kollegen über einem kleinen Problem, allerdings hakts etwas.

    Und zwar haben wir ein 2-dimensionales Array der Größe 3, sprich von [0,0] - [2,2]. Dies Notation ist allerdings etwas hinderlich, und wir versuchen jetzt, diese 2d Darstellung in die absolute Position im Array umzuwandeln.
    Also [0,0] = 0, [1,0] = 1, [2,0] = 2, [0,1] = 3, ... , [2,2] = 9

    Allerdings erschließt sich uns da keine Formel oder ein ähnlicher Zusammenhang, aus dem sich das "mal eben" berechnen ließe und google gibt auch net richtig was her. Wir könnten jetzt natürlich ne ewig lange If / Else Konstruktion basteln, die Spalte / Zeile abfragt, und dann den absoluten Wert zuweist, aber das kann's ja auch nicht sein oder?

    Wäre supi wenn uns da jemand nen Tip geben könnte,

    vielen Dank im Voraus und noch einen schönen Abend,
    Gruß P2

  • #2
    PHP-Code:
    function convert_pos($string) {
        
    preg_match_all('%(\\d+,\\d+)%'$string$matches);
        return 
    $matches[0];
    }

    print_r(convert_pos('0,0|0,1|0,2|1,0|1,1|1,2|2,0|2,1|2,2')); 
    Ausgabe:
    Code:
    Array
    (
        [0] => 0,0
        [1] => 0,1
        [2] => 0,2
        [3] => 1,0
        [4] => 1,1
        [5] => 1,2
        [6] => 2,0
        [7] => 2,1
        [8] => 2,2
    )
    Aber warum machst du nciht einfach ein zweidimensionales array draus, so wie ich das sehe, hast du nämlich nur ein eindimensionales, bei dem du als Schlüssel bspw. 2,1 verwendest
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      also die Def. sieht folgendermassen aus:
      Code:
      int[][] values = new int[3][3];
      insofern ein zweidimensionales Array.
      Ich könnte daraus auch ein eindimensionales Array der Länge [9] machen, allerdings geht dann die Übersicht verloren, daß es sich eben um ein 3*3 Quadrat handeln soll.

      Und unser Plan war halt eine folgende Funktion:
      Code:
      int temp = values.getValue(5);
      wobei (5) dann halt [1,1] entsprechen würde, also die Mitte des 3*3 Quadrats.
      Sinn dahinter ist u.a. for-Schleifen zu sparen, und die ganze Sache ein bisel zu vereinfachen, da nachher sowieso Schleifenchaos herrscht und teilweise auch rekursive Aufrufe vorkommen.

      Aber wenn das nicht möglich ist, werden wir wohl auf ein eindimensionales Array[9] zurückgreifen müssen.

      Kommentar


      • #4
        geht dann nicht besser:

        int temp = values[1][1].getValue();

        ???
        Immer schoen den Quelltext brechen....
        Sorry: UMBRECHEN!

        Kommentar

        Lädt...
        X