2D Array in 1D konvertieren??

Paddy1212

Mitglied
Hey Leute =)

ich bin noch absoluter Anfänger und wollte fragen wie ich 2d arrays in 1d arrays umwandeln kann...
vllt hätte auch jmd noch ein kleines Beispiel damit ich es mir genau anschauen und vorallem verstehe.
wäre echt super, danke schonmal

Lg Paddy
 

XHelp

Top Contributor
Kommt ja ganz drauf an was du damit erreichen willst:
Code:
X00 X01 X02
X10 X11 X12
kann zu:
X00
X10
X01
X11
X02
X12
werden, oder zu:
X00
X01
X02
X10
X11
X12
 

Paddy1212

Mitglied
ich soll ein programm schreiben, dass 2 dimensionales arrays in ein 1 dimensionale umwandelt, jedoch finde ich einfach den ansatz nicht.... sehe wohl vor lauter Bäumen den Wald nicht :(
Java:
public static int[] convertArrayTo1D(int[][] input)

das wäre der teil nachdem wir dann etwas einfügen müssen
 

Paddy1212

Mitglied
ich glaube ich verstehe einfach die frage wohl nicht, deswegen bin ich voll am falschen dampfer ... im kommentar steht noch :
Java:
	/********************\
	 * Expected output: *
	 ********************
##### From 2D to 1D #####
[[1, 2, 3, 4], null, [6, 7, 8, 9, 10]]
----------
[1, 2, 3, 4, 6, 7, 8, 9, 10]

danke für eure antworten =) is echt super nett
 

Volvagia

Top Contributor
...?

Java:
public class Classname
{
	public static void main(String[] args) 
	{
		int[][] array2D = new int[5][10];
		array2D[0][0] = 5;
		array2D[3][0] = 3;
		array2D[0][1] = 1;
		array2D[2][4] = 2;
		
		int[] array1D = new int[array2D.length * array2D[0].length];
		for(int i = 0, k = 0; i < array2D.length; i++)
			for(int j = 0; j < array2D[0].length; j++, k++)
				array1D[k] = array2D[i][j];
	}
}
 

XHelp

Top Contributor
Also doch eine Hausaufgabe ;)
Java:
int count=0;
for (int i=0;i<input.length;i++) {
  if (input[i]!=null) {
    for (int j=0;input[i].length;j++) {
      count++;
    }
  }
}
int[] oneDarray = new int[count];
//und hier wieder ähnlich wie oben durchlaufen, nur das jetzt die wert aus input dem oneDarray zuweist.
... ohne es getestet zu haben
 

Paddy1212

Mitglied
ich danke euch allen... etz kann ich mich in die anderen aufgaben viel besser rein und kann jetzt mal versuchen das ganze richtig zu verstehen =) werde mich etz mal die nacht dran setzen...
 

Paddy1212

Mitglied
und ja es ist eine hausaufgabe.... aber nur der kleine Anfang :( leider wird es noch viel schwerer :/ doch ich war da etz paar stunden dran... aber ich hab einfach keinen Anfang gefunden, weil ich denke ich die Frage einfach nicht wirklich kapiert habe
 

XHelp

Top Contributor
könnte man das ganze nicht mit na while-schleife machen? nur wüsst ich jez auf die schnelle nicht wie

Jede Loop-berechenbare Funktion ist auch While-berechenbar :D Also gehen würde das schon, läuft aber auf:
Java:
int i=0;
while (i<input.length) {
  //machwas
  i++;
}
hinaus, was wiederum eine andere Form der for-Schleife wäre, also nicht ganz so sinnvoll.
 
Zuletzt bearbeitet:

Kaierkopf

Mitglied
Hallo,

ich hab beim obigen Programm das Problem das ich nen
java.lang.NullPointerException- Fehler bekomm.

Das es daran liegt das ein Wert des arreys null ist weiß ich bereits, aber wie kann das Programm zum laufen bringen, obwohl ein Wert null, sprich unbekannt ist ?

Lg
 

ARadauer

Top Contributor
Jetz kann ich mich in die anderen aufgaben viel besser rein und kann jetzt mal versuchen das ganze richtig zu verstehen =)
ja sicher... das ist ein trugschluss. so simple beispiele lesen bring eigentlich gar nix, man muss schon selber versuchen das zu lösen.. fremde beispiele verstehen ist viel schwerer als sie selber zu lösen...
 

ARadauer

Top Contributor
welche Referenzen?

array2D[j];
wenn array2D[1] null ist, kracht es bei array2D[1][j]

bzw schon bei length...

Java:
 int[] array1D = new int[array2D.length * array2D[0].length];
        for(int i = 0, k = 0; i < array2D.length; i++)
            for(int j = 0; j < array2D[0].length; j++, k++)
                array1D[k] = array2D[i][j];
würd ich nicht so machen, du gehst davon aus das alle arrays in dem array gleich lang sind... wenn das nicht der fall ist?
 

Kaierkopf

Mitglied
Wie würdest dus machen ?

Habs etz so versucht, klappt auch fast :

Java:
public static int[] convertArrayTo1D(int[][] input) {
		int [] x = new int [input.length*input[0].length];
		
		for ( int i=0, k =0; i < input.length; i++ )
			if (input[i]!= null){
			for (int j=0; j < input[i].length; j++, k++)
			
						x[k] = input [i][j];
			}

Er wirft mmir etz zwar kein Fehler mehr aus, aber das :[1, 2, 3, 4, 6, 7, 8, 9, 0, 0, 0, 0]

Des waren die Eingabewerte : [[1, 2, 3, 4], null, [6, 7, 8, 9, 10]]

Wie kommen die letzten 4 Nullen zustande?
 

ARadauer

Top Contributor
Wie würdest dus machen ?

Java:
import java.util.Arrays;


public class Test {
	
	public static void main(String[] args) {
	    int[][] values = {{1,2,3,4},null,{6,7,8,9,10}};
	    					//[[1, 2, 3, 4], null, [6, 7, 8, 9, 10]]
	   
	    
	    int[] result = convertArrayTo1D(values);
	    System.out.println(Arrays.toString(result));
	  //[1, 2, 3, 4, 6, 7, 8, 9, 10]
	}

	public static int[] convertArrayTo1D(int[][] input) {
		//zuerst zählen...
		int count = 0; 
		for(int i = 0; i < input.length; i++){
			if(input[i] == null)
				continue;
			count += input[i].length;
		}
		
		//ergebnis aufbauen
		int [] result = new int[count];
		
		//und umkopieren
		int current = 0;
		for(int i = 0; i < input.length; i++){
			if(input[i] == null)
				continue;
			for(int j = 0; j< input[i].length; j++){
				result[current] = input[i][j];
				current++;
			}
		}
		return result;
	}



}
 

Kaierkopf

Mitglied
Ok, vielen Dank soweit!

Sprich du zählst immer erst die Länge des Arrays, zählt der mit dieser Programmierung alle Dimensionen?

Danach übergibst du den gezählten Wert als neue Länge für einen 1 D- array und lässt die Schleife durchlaufen.

Angenommen ich wollte etz eine 3 D in 1 D array konvertieren, dann zähl ich des erst wieder, und erweitere meine Programmierung um eine weitere for- Schleife die einen weiteren Wert( nur um im Alphabet zubleiben, sagen wir k)! Muss ich vor diesem wieder einen Null-Filter einbauen oder reicht einer?

Ich will wirklich keine fertige Lösung oder so was, ich verstehs nur echt net und mir konnte in diesem Fall auch kein Buch weiterhelfen.
 

Michael...

Top Contributor
Angenommen ich wollte etz eine 3 D in 1 D array konvertieren, dann zähl ich des erst wieder, und erweitere meine Programmierung um eine weitere for- Schleife die einen weiteren Wert( nur um im Alphabet zubleiben, sagen wir k)! Muss ich vor diesem wieder einen Null-Filter einbauen oder reicht einer?
Ja, ein "3D" int Array kann auf der ersten und zweiten Ebene null "enthalten"
Java:
int[][][] array = new int[3][][];
array[0] = null;
array[1] = new int[][] {{1, 2, 3}, null};
array[2] = new int[][] {{1}, {1, 2} , {1, 2, 3}, new int[5]};

Wobei man sich überlegen könnte, ob man ab einen "3D" Array das nicht mittels Rekursion statt zusätzlicher for-Schleifen könnte.
 

Kaierkopf

Mitglied
Ich hab des etz versucht nach dem Vorbild der 2D in 1D transformation zu machen, allerdings wirft er mir immer nen Fehler aus. Wenn ich die Größe des 1D- Arrays mit Hilfe der Zählprogrammierung bestimm wie im 2D Fall, zählt der da alle Dimensionen oder nur die 1? Hab auch schon versucht die Zahlschleife zu erweitern, aber ohne erfolg!

Lg
 

ARadauer

Top Contributor
Hab auch schon versucht die Zahlschleife zu erweitern, aber ohne erfolg!
zeig mal...,

Ich will wirklich keine fertige Lösung oder so was, ich verstehs nur echt net und mir konnte in diesem Fall auch kein Buch weiterhelfen.

überleg dir das mal mit bleistifft und papier... was verstehst du genau nicht?
in einer schachtel sind schachteln drinen, wo wieder schachteln drinnen sind, wo Eier drinnen sind. 3D

jetzt willst du eine schachtel bauen die so viele fächer hat das alle eier platz haben. und du fragst jetzt ob du fächer in den ganz inneren schachteln auch mitzählen musst. ähmn? ja klar!


das mit der null überprüfung.. ich würd generell nie ein programm schreiben, wo in einem mehrdimensionalen array irgendow mal mitendrin ein arry null sein kann... aber wenn die aufgabenstellung so ist... musst natürlich auch überprüfen...
 

Kaierkopf

Mitglied
Hi,

Java:
int zaehl = 0;
				for (int i = 0; i<input.length; i++){
					if (input [i] == null) continue;
						for(int j= 0;j <input[i].length;j++)
			zaehl +=  (input[i].length + input[j].length);
					}

Hab se auch schon einmal mit ner weiteren for- Schleife erweitert aber ich bekomm immer nen Fehler!

Addier ich unten die Länge richtig?
 

Andi_CH

Top Contributor
Wie ich soeben in einem anderen Thread beschrieben habe, sind Programmierkenntnisse eine zwingende Voraussetzung um eine Programmiersprache zu lernen.

1. WAS will/muss ich tun
2. WIE will ich das lösen
3. TUN (Erst jetzt kommt eine Programmiersprache zum Zuge) impementieren und testen.

Wir können (ich gebs zu auch wollen) erst im Schritt 3 helfen.

überleg dir mit Papier und Stift wie du das Problem lösen willst ......

mehr steht eben hier
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
G String Array konvertieren in Integer Array? Java Basics - Anfänger-Themen 7
A Liste in Array konvertieren Java Basics - Anfänger-Themen 30
C Datentypen int[][]-Array nach String[][]-Array konvertieren Java Basics - Anfänger-Themen 7
G byte array in integer konvertieren Java Basics - Anfänger-Themen 15
G Zeichenkette in char-Array konvertieren Java Basics - Anfänger-Themen 13
L String in Array konvertieren Java Basics - Anfänger-Themen 5
G Char Array konvertieren Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
A Elemente in einem Array Java Basics - Anfänger-Themen 5
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
AhmadSlack Array Java Basics - Anfänger-Themen 7
Jambolo Kartenhand Array Java Basics - Anfänger-Themen 14
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
EykS 3D Druckdatei basierend auf 3D Array? Java Basics - Anfänger-Themen 3
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben