2D Array Matrizen

Diskutiere 2D Array Matrizen im Java Basics - Anfänger-Themen Bereich.
S

Samka

Hallo,
Java ist für mich noch Neuland, deshalb komme ich bei einer Teilaufgabe nicht weiter es geh darum einen Array zu extracten.
Leider habe ich keinen richtigen Ansatz dafür.
Danke im voraus
MfG Samka
 

Anhänge

S

Samka

1. Überprüfen ob int Werte im Index enthalten sind
2. Schauen welche Werte vom Array enthalten sind
3. Einen neuen Array erstellen mit 2x2 oder nur einem Wert
(Achja man darf davon ausgehen daß die Matrizen wohlgeformt und quadratisch sind )
 
mihe7

mihe7

Wenn ich Dich richtig verstanden habe, dann ist 1. überflüssig, weil ein int-Array immer int-Werte enthält. Mit dem 2. Punkt meinst Du wahrscheinlich, ob die Arraygrenzen eingehalten werden. Und 3. warum nur 2x2 oder 1x1?

Geh mal von einem 10x10 Array array aus und dem Aufruf extractSubarray(array, 1, 1, 8, 8) aus. Wie groß wäre dann das Zielarray?
 
S

Samka

also rowStart und colStart inklusive und rowEnd und colEnd sind exklusive.
7x7 array

und 2x2 und 1x1 wenn das array 3x3 ist :)
 
T

Tobias-nrw

Java:
	public static int[][] es(int[][] a, int y1, int y2, int x1, int x2) {
		if (y1 < 0 || x1 < 0)
			return new int[0][0];
		if (y2 > a.length)
			y2 = a.length;
		if (x2 > a.length)
			x2 = a.length;
		int[][] b = new int[y2 - y1][x2 - x1];
		for (int y = y1; y < y2; y++) {
			for (int x = x1; x < x2 && x < a[y].length; x++) {
				b[y - y1][x - x1] = a[y][x];
			}
		}
		return b;
	}

	public static void main(String[] args) {
		System.out.println(Arrays.deepToString(es(new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }, 0, 2, 0, 2)));
		System.out.println(Arrays.deepToString(es(new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }, 2, 4, 2, 4)));
		System.out.println(Arrays.deepToString(es(new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8 } },    2, 4, 2, 4)));
	}
Wenn ich mich nicht verhaspelt habe dann sollte es das sein. Die Frage ist was bei ungültigen Parametern (zB <0) geschehen soll und was bei nicht "rechteckigen" Matrizen geschehen soll.

Ausgabezeile 3 gibt zB einfach [[0]] zurück. :(

/e Ich habe die (Parameter)Namen verkürzt damit die Zeilen nicht ewig lang werden.
 
T

Tobias-nrw

Ich glaub der Löwenanteil wegen guter Erklärung gebührt @mihe7 .

Ich möchte aber dennoch dass die Fehlerfälle "korrekt" behandelt werden....
 
Thema: 

2D Array Matrizen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben