Array erstellen

Stefan K

Mitglied
ich fang wirklich gerad von 0 an zu programmieren und hier ist meine Frage, also alles so leicht wie möglich erklären = ), also:

wie erstell ich ein 2 dimensionales Array?

mein ansatz ist bisher:

String myArray [8][8] = {
{1, 2, 3, 4, 5, 6, 7, 8},
{9, 10, 11, 12, 13, 14, 15, 16},
{17, 18, 19, 20, 21, 22, 23, 24},
{25, 26, 27, 28, 29, 30, 31, 32},
{33, 34, 35, 36, 37, 38, 39, 40},
{41, 42, 43, 44, 45, 46, 47, 48},
{49, 50, 51, 52, 53, 54, 55, 56},
{57, 58, 59, 60, 61, 62, 63, 64},
};
String myArray[0][0] = 1;
String myArray[0][1] = 2;
String myArray[0][2] = 3;
String myArray[0][3] = 4;
String myArray[0][4] = 5;
String myArray[0][5] = 6;
String myArray[0][6] = 7;
String myArray[0][7] = 8;


und so weiter bis 64 und dann mit einer
void function( int feld[ ] )
weiter arbeiten.
Netbean sagt jetzt aber bei der ersten "int myArray[8][8] = {
das ein fehler ist da: ']' expected
und insgesamt der block dadrunter, "not a statement"

Kann mir jemand damit helfen?
Schonmal danke = )
 
G

Gast2

Gast
Der Typ ist nicht
Code:
String[8][8]
sondern
Code:
String[][]
. Außerdem sind zahlen keine Strings.
Java:
int[][] arr = {{1,2},{3,4}};
Das wäre nen gültiges Array.
 

Stefan K

Mitglied
Oha das ging schnell mit der Antwort :)

Die Zeile ist ist aber schon richtig oder: int myArray = [8][8] = {
Ich dachte damit gibt man wie viele Felder das Array haben soll?
bei der Zeile steht illegal start of expression? was muss noch davor?

"Aber warum erstellst du erst ein Array mit haufenweise Zahlen, um es dann sofort wieder mit anderen Werten zu füllen?"

Hm gute Frage, ich dachte ich muss die einzelnen felder ( 1, 2, ..uws) noch genauer definieren mit [0][1]..


int[][] arr = {{1,2},{3,4}};
Ist das jetzt ein 2x2 Array?
und wieso sind die klammern nachm int leer?

ah und was ist das: ']' expected?
das kommt die ganze zeit.. :/
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
also wenn schon, denn schon
Java:
int arr[][] = new int[8][8];
Hm gute Frage, ich dachte ich muss die einzelnen felder ( 1, 2, ..uws) noch genauer definieren mit [0][1]..
Nö, entweder, du gibst am Anfang die Größe an (wie hier in meinem Beitrag) oder du gibst eine Menge von Elementen mit (wie du das ganz am Anfang gemacht hast). Im ersten Fall müsstest du das Array dann mit arr[j] befüllen, im zweiten Fall ist es bereits gefüllt.
 

Stefan K

Mitglied
int myArray[][] = new int[8][8];

myArray[0][0] = 1;
myArray[0][1] = 2;
myArray[0][2] = 3;
myArray[0][3] = 4;
myArray[0][4] = 5;
myArray[0][5] = 6;
myArray[0][6] = 7;
myArray[0][7] = 8;

myArray[1][0] = 9;
myArray[1][1] = 10;
myArray[1][2] = 11;
myArray[1][3] = 12;
myArray[1][4] = 13;
myArray[1][5] = 14;
myArray[1][6] = 15;
myArray[1][7] = 16;
usw.. bis 64
also ist es so richtig ja?
wenn ich dann wie beim schach schreibe, dass z.b. figur.myArray = 1,
erkennt mein prog dann schon das die figur auf [0][0] steht?
 

HimBromBeere

Top Contributor
figur.myArray = 1,
sowas gibt´s gar nicht, du musst schon immer dazuschreiben, auf welches der 64Elemente du zugreifen möchtest.

Das Befüllen geht aber auch einfacher:
Java:
int k = 0;
int arr[][] = new int[8][8];
for (int i = 0; i < arr.length; i++) {
	for (int j = 0; j < arr[0].length; j++) {
		arr[i][j] = k++;
	}
}
 
Zuletzt bearbeitet:

Michael...

Top Contributor
int myArray[][] = new int[8][8];

myArray[0][0] = 1;
myArray[0][1] = 2;
myArray[0][2] = 3;
myArray[0][3] = 4;
myArray[0][4] = 5;
myArray[0][5] = 6;
...
usw.. bis 64
also ist es so richtig ja?
Wenn dann würde die Befüllung mit zwei for-Schleifen machen, oder eben direkt
Java:
int myArray[][] = { {1, 2, 3, 4, 5, 6, 7, 8},
                             {9, 10, 11, 12, 13, 14, 15, 16},
                             ...
                             {56, 57, 58, 59, 61, 62, 63, 64}};

Wenn das dann allerdings ein Schachfeld repräsentieren soll, dann benötigt man diese Initialisierung nicht bzw. würde die Werte gezielt setzen.
 

Stefan K

Mitglied
Hm das mit dem befüllen ist jetzt zu spät :D hab schon alles einzelnd ausgefüllt, nächstes mal benutzt ich eine while schleife ;)

Piece class:
char color = 'w';
char color1 = 's';
int myArray;
String type;

Piece Bauer = new Piece();
Bauer.myArray = 9;
Piece Bauer1 = new Piece();
Bauer.myArray = 10;
Piece Bauer2 = new Piece();
Bauer.myArray = 11;

So hab ich mir das eigentlich gedacht, funktioniert das so?
das man jede figur einer position innerhalb des arrays zuteilt?
und wenn nicht wie dann?
 

Michael...

Top Contributor
Hm das mit dem befüllen ist jetzt zu spät :D hab schon alles einzelnd ausgefüllt, nächstes mal benutzt ich eine while schleife ;)
und trotzdem nutzt Dir die Befüllung nichts ;-) scheint so als hast Du das Thema Array noch nicht so ganz verstanden. Ein Array ist nichts anderes als ein Behälter für Primitive oder Objekte. Was nutzt Dir da jetzt ein Array in dem die Werte 1 bis 64 stehen?
Piece Bauer = new Piece();
Bauer.myArray = 9;
Piece Bauer1 = new Piece();
Bauer.myArray = 10;
Piece Bauer2 = new Piece();
Bauer.myArray = 11;
So hab ich mir das eigentlich gedacht, funktioniert das so?
das man jede figur einer position innerhalb des arrays zuteilt?
und wenn nicht wie dann?
Nein.
Ausserdem ist es beim Schach üblich, dass der Spieler bzw. der Schachcomputer weiss, welche Figur auf welchem Spielfeld steht, die Spielfigur selbst ist da ziemlich doof ;-)
Java:
Piece[][] gameField = new Piece[8][8];
gameField[0][0] = new Turm();
...
gameField[1][0] = new Bauer();
 

Stefan K

Mitglied
Hehe ja kann gut sein, ich starte gerad erst in die programmierung, gibt noch vieles was ich nicht begreife..
Piece[][] gameField = new Piece[8][8];
gameField[0][0] = new Turm();
...
gameField[1][0] = new Bauer();

da unterkringelt er : Turm()

"symbol not find"


wenn ich dann dafür überall schreib:

gamefield[0][1] = new Springer(); usw..
dann weiß mein Programm auf welchem feld im array die figuren sich befinden?
und was bedeutet das "()" hinter turm?
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
gamefield[0][1] = new Springer(); usw..
dann weiß mein Programm auf welchem feld im array die figuren sich befinden?
Na im Feld [0][1] natürlich...
Die Klammern hinter Tirm, Springer, ... bedeuten, dass der Konstruktor aufgerufen werden soll, also das eine neue Instanz der Klasse Turm erzeugt werden soll. Die Klassen Turm, Bauer, ... musst du aber natürlich auch erstmal implementieren, deshalb bekommst du den Fehler "symbol not found"
 

Stefan K

Mitglied
und wie funktioniert das implementieren?

Dicken dank zwischendurch, so kommt man wirklich viel schneller ins thema rein :)

Piece[][] gameField = new Piece[8][8];


//Figuren von Spieler 1
gameField[0][0] = new Turm();
gameField[0][1] = new Springer();
gameField[0][2] = new Laeufer();
gameField[0][3] = new Dame();
gameField[0][4] = new Koenig();
gameField[0][5] = new Laeufer2();
gameField[0][6] = new Springer2();
gameField[0][7] = new Turm2();
gameField[1][0] = new Bauer1();
gameField[1][1] = new Bauer2();
gameField[1][2] = new Bauer3();
gameField[1][3] = new Bauer4();
gameField[1][4] = new Bauer5();
gameField[1][5] = new Bauer6();
gameField[1][6] = new Bauer7();
gameField[1][7] = new Bauer8();

//Figuren von Spieler 2
gameField[7][0] = new TURM();
gameField[7][1] = new SPRINGER();
gameField[7][2] = new LAEUFER();
gameField[7][3] = new DAME();
gameField[7][4] = new KOENIG();
gameField[7][5] = new LAEUFER2();
gameField[7][6] = new SPRINGER2();
gameField[7][7] = new TURM2();
gameField[6][0] = new BAUER1();
gameField[6][1] = new BAUER2();
gameField[6][2] = new BAUER3();
gameField[6][3] = new BAUER4();
gameField[6][4] = new BAUER5();
gameField[6][5] = new BAUER6();
gameField[6][6] = new BAUER7();
gameField[6][7] = new BAUER8()

so sieht das im moment bei mir aus, so gut?
 

Michael...

Top Contributor
Von der Initialisierung des Spielfeldes her in Ordnung.
Aber schau Dir mal ein Schachspiel an. Da gibt es keinen Bauer5 oder Turm2...
Es gibt acht weiße und acht schwarze Bauer... die Bauern einer Farbe unterscheiden sich nicht, genauso wie die anderen Figuren einer Farbe.
Der Unterschied besteht nur in der Art (Zugmöglichkeiten) der Figur und deren Zugehörigkeit (Farbe)
 

HimBromBeere

Top Contributor
Wenn du TURM ersetzt durch Turm (äquivalent natprlich Bauer und Springer)...

EDIT: Du brauchst nicht für jede Figur eine eigene Klasse zu definieren, sondern für jeden Typ von Figur (also eine Klasse für alle Springer, eine für alle Bauern...).
Schreibst du dann sowas wie new Bauer, teilst du dem Compiler mit: ich möchte die Klasse Bauer EIN WEITERES MAL instanziieren, also einen Bauern bauen...
 
Zuletzt bearbeitet:

Stefan K

Mitglied
Okay stimmt, macht Sinn hab ich jetzt geändert und wie funktioniert das implementieren?
gibts da einen befehl oder muss ich "Bauer" z.b. mit iwas definieren?
 

Michael...

Top Contributor
Naja, wenn Du wirklich mit dem Programmieren bei 0 anfängst, solltest Du auch bei 0 anfangen und nicht mit einem Schachspiel.
Voraussetzung hierfür sind schon mal grundlegenden Kenntnisse wie Bedingungen, Schleifen, Array/Collections, Aufbau von Klassen und ganz wichtig Vererbung...
 

HimBromBeere

Top Contributor
Implementieren heißt soviel wie schreiben, also coden...
Wenn da stand, du sollst eine Klasse implementieren, heißt das nichts weiter als dass du sie erstellen sollst. Dafür musst du nirgends was drücken, sondern nur schreiben, z.B.

Java:
public class Bauer extends Spieler {
    // jede Figur gehört entweder zu schwarz (0) oder zu weiß (1)
    final int farbe;
    public Bauer(int farbe) {this.farbe = farbe;}

}
Dann legst du z.B. an Spielposition [5][4] einen neuen weißen Bauern an:
Java:
spielfeld[5][4] = new Bauer(1);

EDIT: Sinnvollerweise wirst du die sog. Instanzvariable farbe aber nicht (wie hier) in der Klasse Bauer definieren (denn dann müsstest du das gleiche auch in den Klassen Turm, Springer, ... machen, die ja auch von Spieler erben), sondern gleich in der Klasse Spieler.
 
Zuletzt bearbeitet:

Stefan K

Mitglied
Hm ja ich muss mich da einarbeiten, aber ich denk ich bin auf einem ganz gutem weg, ich dachte an einem beispielt gehts ganz gut und schachspiel ist motivierend :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
H Array mit Zahlen die durch 3 und 5 teilbar sind erstellen Java Basics - Anfänger-Themen 13
M Generischer Array erstellen Java Basics - Anfänger-Themen 2
A Char-Array erstellen Java Basics - Anfänger-Themen 35
M Datentypen Generisches Array erstellen Java Basics - Anfänger-Themen 4
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
V Methode erstellen für ein Boolean Array Java Basics - Anfänger-Themen 13
C ZweiDimensionales Array erstellen und Spiegeln Java Basics - Anfänger-Themen 1
R Datentypen 3-dimensionales Array erstellen Java Basics - Anfänger-Themen 2
K Variablen Ist es möglich eine ArrayList vom Typ Array zu erstellen? Java Basics - Anfänger-Themen 2
M globales Array erst mittem im Programm erstellen Java Basics - Anfänger-Themen 14
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
T Compiler-Fehler Mit Array und "for" mehrere ImageIcon erstellen Java Basics - Anfänger-Themen 7
E Erste Schritte Array soll kleiner werdenden String erstellen Java Basics - Anfänger-Themen 5
shiroX Input/Output Array erstellen / Länge Java Basics - Anfänger-Themen 3
shiroX Input/Output Array erstellen Java Basics - Anfänger-Themen 5
G Erste Schritte Einfaches Gästebuch erstellen mit Array Java Basics - Anfänger-Themen 7
J Array Objekte erstellen Java Basics - Anfänger-Themen 6
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
D Array void Methode erstellen. Java Basics - Anfänger-Themen 12
C ein [n] [n] array erstellen und einen wert zuordenen Java Basics - Anfänger-Themen 7
R Array eines neuen Typen erstellen und befüllen Java Basics - Anfänger-Themen 2
S Array erstellen Java Basics - Anfänger-Themen 4
D Ein boolean[] Array größer als 63.000.000 erstellen? trotz -Xms und -Xmx.... Java Basics - Anfänger-Themen 7
J Mehrdimensionale Liste erstellen ohne Array Java Basics - Anfänger-Themen 14
M Array[][] aus String erstellen Java Basics - Anfänger-Themen 4
O Array-Objekt erstellen Java Basics - Anfänger-Themen 11
F Array einer eigenen Klasse erstellen. Java Basics - Anfänger-Themen 8
G Aus Array einen Heap erstellen Java Basics - Anfänger-Themen 5
P Kann kein Array von Properties erstellen. Java Basics - Anfänger-Themen 5
G Char oder Byte Array mit unbekannter länge erstellen? Java Basics - Anfänger-Themen 1
P zweidimensionales Array erstellen Java Basics - Anfänger-Themen 9
K Array von einem eigenen Objekt erstellen Java Basics - Anfänger-Themen 5
Dilandau array aus eigenen objekten erstellen? 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
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
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
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

Ähnliche Java Themen

Neue Themen


Oben