Erste Schritte Deklaration und Initialisierung von Arrays

Reggie()

Bekanntes Mitglied
Hi Leute,
ich habe noch Probleme zu verstehen, wann und wo ich Arrays deklariere bzw. initialisiere. Mache ich das bei den Klassenattributen oder im Konstruktor? oder in einer Methode oder in der main?
also erst String[] str; und später str = new String[5]; ? oder kann/soll ich das uU gleich bei den Attributen String[] str = new String[5]; oder gar gleich String[] str= new String{"a","b","c","d","e"); ?
ist String[] str = new String[5]; überhaupt nötig?
 

krgewb

Top Contributor
String[] str= new String{"a","b","c","d","e");
Die Zeile ist fehlerhaft. Der new-Operator darf nicht verwendet werden.
Wie dem auch sei. Wenn du String[] str = {"a","b","c","d","e"}; schreibst, ist von vornherein klar, dass da 5 Elemente sind. Bei Arrays können nachträglich keine Elemente hinzugefügt werden.
 
Zuletzt bearbeitet:

Joose

Top Contributor
ich habe noch Probleme zu verstehen, wann und wo ich Arrays deklariere bzw. initialisiere.
Das kommt ganz darauf an wo du welches Array brauchst bzw. verwenden willst ;)

Wenn du es in der Klasse in verschiedenen Methoden brauchst dann solltest du es als Attribut deklarieren, wenn du es nur lokal in einer Methode brauchst dann eben nur dort.
Ob du es nun auch direkt bei der Deklarierung auch initialisierst hängt davon ob die Größe dir schon bekannt ist oder diese vielleicht durch einen Parameter festgelegt ist.

Achtung:
Java:
String[] myStringArray = new String[5]; // erzeugt ein Array mit der Länge 5, auf allen Indexe ist noch kein Wert festgelegt
String[] anotherStringArray = { "a", "b", "c", "d"}; // erzeugt ein Array mit der Länge 4, die Indexe wurden auch schon mit Werten belegt

int[] = new int[10]; // erzeugt ein Array mit der Länge 10, alle Indexe haben den Wert 0 da es sich beim Array Typ um einen primitiven Datentyp handelt
 

Robat

Top Contributor
Ich denke das kann man pauschal nicht sagen, da es von der Situation abhängt.

Ob du Variablen erst im Konstruktor initialisierst oder es direkt nach der Deklaration machst ist mMn. egal solange du zu dem Zeitpunkt schon alles über dein Array weißt (Anzahl der Elemente / Werte). Wenn du am Anfang nur weißt dass du ein int Array bestehend aus 5 Elementen hast dann kannst du es eben erst später mit Werten füllen.

String[] str = new String[5]; kannst du sehr wohl gebrauchen - nämlich immer dann wenn du weißt dass du ein Array mit 5 Elementen brauchst aber die Werte erst nach und nach in das Array eintragen willst. Genau so ist String[] str = { "A", "B", "C" }; nützlich wenn du einem Array default Werte zuweisen möchtest.

Wie du es am Ende machst ist - wie bereits geschrieben - Situationsabhängig und kann man pauschal nicht sagen. Ich bspw. bevorzuge es Variablen immer erst im Konstruktor zu initialisieren. Ich kenne aber auch Leute die es lieber haben das direkt nach der Deklaration zu machen.

Gruß Robert
 

Reggie()

Bekanntes Mitglied
ok. ich fasse zusammen. WENN ich schon Werte zuweisen möchte, dann benötige ich keine gesonderte Deklaration. also ist
String[] str = new String[3]; unnötig, wenn ich String[] str = { "A", "B", "C" }; mache.
vielen Dank :)
 

Reggie()

Bekanntes Mitglied
also würde das gehen, eine Deklaration und Initialisierung in einer Methode?
Java:
  public void erstelleSpielkarten() {
    String[] temp = { "7","8","9","10","B","D","K","A" };
    for(int i=0; i<8; i++) {
      ziehstapel.add("Karo",temp[i]);
      ziehstapel.add("Herz",temp[i]);
      ziehstapel.add("Pik",temp[i]);
      ziehstapel.add("Kreuz",temp[i]);
    }
  }
 

Reggie()

Bekanntes Mitglied
geht leider nicht. bin grad in der Arbeit. dies ist reine Theorie (probieren kann ichs erst zuhause, wills aber jetzt schon wissen :)
 

Robat

Top Contributor
Es würde funktionieren, ja.

Ich würde die 8 aber nicht hard-coden sondern direkt über die Länge des Arrays gehen.
for(int i = 0; i < arr.length; i++).
So vermeidest du Fehler falls sich die Anzahl der Elemente im Array mal ändern sollte.

Gruß Robert
 

Reggie()

Bekanntes Mitglied
nächste Frage geht um entfernen von Werten aus dem Array bzw. ArrayList. ich habe gelesen, dass die Liste (indexe) nachrutschen. remove ich index 0 , dann wird index 1 zu 0, index 2 zu 1 usw..
wenn ich also die ersten 5 Werte haben möchte, dann kann ich keine Schleife mit remove(i) machen, sondern müsste 5x remove(0) machen, also 5x den ersten (index 0) Wert? ich hoffe die Frage war verständlich.
 

Robat

Top Contributor
Erstmal kannst du bei einem Array keine Elemente hinzufügen oder löschen. Das geht nur bei Listen.

Das bei Listen die Elemente nachrutschen wenn du einen Eintrag löschst ist richtig aber ich versteh deine Frage noch nicht ganz. Wenn du auf das 5. Element zugreifen willst kannst du das bei einer Liste mit myList.get(int index);.
Wenn du die ersten 3 Elemente löschen willst dann kannst du das auch über eine Schleife lösen:

Java:
for(int i = 0; i < 4; i++)
    myList.remove(0);

Wenn du wie geschrieben die ersten 5 Werte haben möchtest:
wenn ich also die ersten 5 Werte haben möchte,

Dann kannst du das wie bei einem Array mit einer Schleife machen:
Java:
for(int i = 0; i < 5; i++)
    System.out.println(myList.get(i));

Gruß Robert
 

Reggie()

Bekanntes Mitglied
Java:
for(int i = 0; i < 4; i++)
    myList.remove(0);
Danke Robert, das hat zu 100% meine Frage beantwortet.

Rätsel: was wird ausgegeben? man beachte remove(i)
Java:
List<int> myList = { 0,1,2,3,4,5,6,7,8,9 };
for(int i = 0; i < 4; i++)
    System.out.print(myList.remove(i));

Antwort:




0246
EDIT: ooops, habe grad gelesen, dass man wohl primitive Datentypen wie int nicht in Listen packen kann, ausser man castet sie zum Objekt
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Ich glaube du meinst es so:
Java:
import java.util.ArrayList;
import java.util.List;

public class Hauptprogramm {

    public static void main(String[] args) {
        List<Integer> myList = new ArrayList<Integer>();
        myList.add(0);
        myList.add(1);
        myList.add(2);
        myList.add(3);
        myList.add(4);
        myList.add(5);
        myList.add(6);
        myList.add(7);
        myList.add(8);
        myList.add(9);

       for(int i = 0; i < 4; i++)
           System.out.print(myList.remove(i));

    }

}

Ausgabe ist:
0246

@thecain Er kann es nicht ausprobieren da er auf Arbeit ist.
 

Reggie()

Bekanntes Mitglied
du hast es andersrum gemacht. die Frage war, welche Werte man erhält, wenn man nacheinander index 0, 1, 2 und 3 entfernt. aber sorum gehts auch und du bist zum gleichen Ergebnis gekommen (invertiert) :)
und ist es wirklich so mit den primitiven Datentypen? laut der Dok, die ich gelesen habe, würde myList.add(0) zum Fehler führen
 

krgewb

Top Contributor
Anders ist es nicht möglich.
Dein Code
Java:
List<int> myList = { 0,1,2,3,4,5,6,7,8,9 };
funktioniert nicht.

Du könntest auch ein int-Array machen aber dann kannst du nichts removen.
 

Reggie()

Bekanntes Mitglied
Time to get crazy:
Java:
import java.util.ArrayList;
import java.util.List;

public class Hauptprogramm {

    public static void main(String[] args) {
        List<Integer> myList = new ArrayList<Integer>();
        myList.add(0);
        myList.add(1);
        myList.add(2);
        myList.add(3);
        myList.add(4);
        myList.add(5);
        myList.add(6);
        myList.add(7);
        myList.add(8);
        myList.add(9);

       String ergebnis;
       for(int i = 0; i < 4; i++)
         ergebnis += Integer.toString(myList.remove(i));
       System.out.print(ergebnis);
    }
}
geht das? gibt er dann 0246 aus?
 

krgewb

Top Contributor
Du musst es so machen:
Java:
import java.util.ArrayList;
import java.util.List;

public class Hauptprogramm {

	public static void main(String[] args) {
		List<Integer> myList = new ArrayList<Integer>();
		myList.add(0);
		myList.add(1);
		myList.add(2);
		myList.add(3);
		myList.add(4);
		myList.add(5);
		myList.add(6);
		myList.add(7);
		myList.add(8);
		myList.add(9);

		String ergebnis = "";
		for (int i = 0; i < 4; i++)
			ergebnis += Integer.toString(myList.remove(i));
		System.out.print(ergebnis);
	}
}

Die Ausgabe ist:
0246
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Klassen Deklaration und Initialisierung Java Basics - Anfänger-Themen 15
M Deklaration und Initialisierung bei Method Erstellung Java Basics - Anfänger-Themen 12
D Datentypen Felder: Deklaration und Initialisierung Java Basics - Anfänger-Themen 5
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
D Datentypen Char deklaration Java Basics - Anfänger-Themen 4
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
M Wo liegt der Unterschied? Deklaration Klasse oder Konstruktur Java Basics - Anfänger-Themen 3
M Erste Schritte package-Deklaration, Problem Java Basics - Anfänger-Themen 6
M Frage zu Generics-Deklaration Java Basics - Anfänger-Themen 5
A Array Deklaration Java Basics - Anfänger-Themen 6
B Erste Schritte Unterschiede bei der Deklaration von Strings Java Basics - Anfänger-Themen 4
K Protected und Private Deklaration Java Basics - Anfänger-Themen 8
G Erste Schritte Methodenaufruf, Variablen-Deklaration Java Basics - Anfänger-Themen 6
J definition / deklaration Java Basics - Anfänger-Themen 2
K Erste Schritte deklaration von int Java Basics - Anfänger-Themen 4
S Methode Deklaration Variablen initalisieren Java Basics - Anfänger-Themen 2
E Erste Schritte Umstieg von PHP - Deklaration Java Basics - Anfänger-Themen 9
S Deklaration 0x12 Java Basics - Anfänger-Themen 4
M fehler bei instanzvariablen deklaration?? Java Basics - Anfänger-Themen 6
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
G Definition / Deklaration Java Basics - Anfänger-Themen 13
I Deklaration und Definition Java Basics - Anfänger-Themen 7
I Datentypen Unterschied in Deklaration von ArrayList Java Basics - Anfänger-Themen 26
Luk10 Deklaration von lokalen Variablen Java Basics - Anfänger-Themen 2
J Was genau davon ist Anweisung, was Deklaration? Java Basics - Anfänger-Themen 2
S OOP package Deklaration Java Basics - Anfänger-Themen 4
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
A Deklaration von einem Array Java Basics - Anfänger-Themen 9
A Deklaration eines Arrays Java Basics - Anfänger-Themen 11
R Deklaration: was passiert da? Java Basics - Anfänger-Themen 3
G Deklaration und Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 2
S Methoden Deklaration u. Definition trennbar (wie in C)? Java Basics - Anfänger-Themen 9
C Deklaration einer Variablen in einem rekursivem Aufruf Java Basics - Anfänger-Themen 5
K Variablen Deklaration Java Basics - Anfänger-Themen 3
B Deklaration eines char-array Java Basics - Anfänger-Themen 2
J Probleme mit Deklaration Java Basics - Anfänger-Themen 13
B variable deklaration und wert speichern in 2 anweisungen? Java Basics - Anfänger-Themen 20
L Variablen-Deklaration Java Basics - Anfänger-Themen 9
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
B Klassen Ungültige Objektzustände bei der Initialisierung Java Basics - Anfänger-Themen 2
A OOP und Initialisierung Java Basics - Anfänger-Themen 5
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
T Erste Schritte Frage zur Initialisierung eines Mehrdimensionalen Arrays Java Basics - Anfänger-Themen 3
A Variablen Variable soll ihren Wert nach Initialisierung nicht mehr ändern Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
F Erste Schritte Frage zur Initialisierung Java Basics - Anfänger-Themen 4
S Initialisierung von Klassenvariablen Java Basics - Anfänger-Themen 7
D Problem mit Initialisierung und Reihenfolge Java Basics - Anfänger-Themen 10
J Initialisierung Array-Liste Java Basics - Anfänger-Themen 3
S Object Initialisierung Java Basics - Anfänger-Themen 7
F Variable ohne Initialisierung in For Schleife Java Basics - Anfänger-Themen 5
B Initialisierung von Zeichenpanel Java Basics - Anfänger-Themen 3
Luk10 Saubere Initialisierung im Konstruktor Java Basics - Anfänger-Themen 4
M Variablen Initialisierung von Arrays Java Basics - Anfänger-Themen 7
K Datentypen Default Initialisierung Java Basics - Anfänger-Themen 8
P Initialisierung einer 5*5 Matrix mit best. Werten Java Basics - Anfänger-Themen 2
V Datentypen Array Initialisierung funktioniert nicht Java Basics - Anfänger-Themen 3
B Fragen zur Initialisierung/Zuweisung der Variable + Packages erstellen Java Basics - Anfänger-Themen 4
S jTree initialisierung Java Basics - Anfänger-Themen 4
G Initialisierung + alte Werte Java Basics - Anfänger-Themen 7
F "Initialisierung der VM fehlgeschlagen. res=-4 jvm is n Java Basics - Anfänger-Themen 5
P Grundsätzliches zur String-Initialisierung Java Basics - Anfänger-Themen 2
M String Initialisierung Java Basics - Anfänger-Themen 5
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
T Unterschied Initialisierung von Klassen Java Basics - Anfänger-Themen 3
H String initialisierung Java Basics - Anfänger-Themen 9
A array nach initialisierung final machen? Java Basics - Anfänger-Themen 17
M Initialisierung Java Basics - Anfänger-Themen 4
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43

Ähnliche Java Themen

Neue Themen


Oben