Verkettung von Arrays

scue

Mitglied
Hallo, ist es möglich eine Arrayliste in einer Arraylist zu basteln. Ich kenne Arraylisten so gut wie noch gar nicht, außerdem, was bei Java ist eine Insel steht.

Ein Beispiel von dem was ich machen möchte.

Die Bundesliga hat ja verschiedenene Vereine. im ersten array soll der name stehen und gründungsjahr. und dann noch eine arrayliste, in der die spieler aufgezählt werden. aber ich verstehe nicht, wie man das verketten kann.

Mein Lösungsanatz wäre eine Klasse Vereine, mit den Attributen Name, Gründungsjahr, und dann ArrayList<Spieler> spieler= new ArrayList<Spieler>() und eine Klasse Spieler mit dem Namen und Größe.

Dabei würde dann auch shcon die nächste Frage auftauchen, besteht dann die Möglichkeit sich alle Spieler ausgeben zu lassen von allen Mannschaften?

kann mir jemand helfen? hoffe alles halbwegs verständlich

grüße
 

XHelp

Top Contributor
Der Lösungsansatz ist schon ganz brauchbar. Um sich die Namen aller Spieler ausgeben zu lassen musst du über alle Manschaften und anschließend über alle Spieler iterieren.
 

scue

Mitglied
mmh hier mal mein versuch, erstmal die listen zu erstellen. irgendwo bin ich aber noch auf dem holzweg. Allein weil jedes mal wenn ich ein neues Objekt anlege, der Verein auch neu angelgt werdn würde oder?
Java:
package standard;

import java.util.ArrayList;

public class Verein {
	String name;
	ArrayList<Verein> vereinsliste;
	int gruendungsjahr;
	
	public Verein(String aname, int agruendung, String aspielername1, int aspielergroese){
		ArrayList<Spieler> spieler= new ArrayList<Spieler>();
		this.name = aname;
		this.gruendungsjahr = agruendung;
             //Hier erscheint noch ein Fehler
		Spieler(aspielername1, aspielergroese);
	}
	public static void main(String[] args) {
		new Verein("bremen", 1821, "borrowski", 175);
		new Verein("münchen", 1721, "gomez", 178);
		
	}

}
Java:
package standard;

import java.util.ArrayList;

public class Spieler {
	ArrayList<Spieler> spielerlisteverein;
	String spielername;
	int spielergroese;
	
	public Spieler(String aspielername1, int aspielergroese){
		this.spielername = aspielername1;
		this.spielergroese = aspielergroese;
		spielerlisteverein.add(this);
	}
}

edit:
ach ja und meine ausgabe mittels einer foreach funkt auch nicht :(

Java:
for(String item:vereinsliste){
			System.out.println(vereinsliste.name);
		}

Hier meckert er bei vereinsliste rum, dass sie ja nicht static sei.
 
Zuletzt bearbeitet:

tagedieb

Top Contributor
Autsch!!!

1. Du hast die Vereinsliste nicht initialisiert, noch hast du der liste irgendwelche Vereine hizugefuegt

Definiere vereinsliste als static und initialisiere sie auch gleich. Ausserdem bei der Typendeklaration Interfaces verwenden.

Code:
List<Verein> vereinsliste = new ArrayList<Verein>();

In Konstruktor fuegst du den neu erstellen Verein der Liste hinzu.

Code:
vereinsliste.add(this);


2. Erzeuge erst den Verein und dann kannst du via Methode
Code:
addSpieler(Spieler spieler)
Spieler dem Verein hinzufuegen

Entferne Spielername und Spielergroesse aus dem Konstruktor
Spieler(Liste) musst du als Instanzvariable definieren. Ansonsten wird sie lediglich in Konstruktor erzeugt und dann am Ende geloescht, da es blos eine lokale Variable ist.

Einen neuen Spieler erstellt man mit dem keyword
Code:
new
.

Code:
spielerlisteverein
hat in der Klasse Spieler nichts zu suchen.


Wenn du alles richtig gemacht hast muesste am Ende der folgende Code alle Vereine und Spieler ausgeben:

Java:
	public static void main(String[] args) {
		Verein bremen = new Verein("bremen", 1821);
		bremen.addSpieler(new Spieler("borrowski", 175));
		bremen.addSpieler(new Spieler("xxxx", 176));

		Verein muenchen = new Verein("münchen", 1721);
		muenchen.addSpieler(new Spieler("gomez", 178));
		muenchen.addSpieler(new Spieler("xxxxx", 179));
		muenchen.addSpieler(new Spieler("xxxxxx", 180));

		for (Verein item : vereinsliste) {
			System.out.println(item.name + ", " + item.gruendungsjahr);
			for (Spieler spieler : item.spielerListe)
				System.out.println(spieler.spielername + ", "
						+ spieler.spielergroese);
			System.out.println();
		}
	}
 

ARadauer

Top Contributor
Mein Lösungsanatz wäre eine Klasse Vereine, mit den Attributen Name, Gründungsjahr, und dann ArrayList<Spieler> spieler= new ArrayList<Spieler>() und eine Klasse Spieler mit dem Namen und Größe.
ja das ist schon richtig... aber bei deinem Code hast du einen kleinen Denkfehler!
Warum hat dein Verein eine Liste mit Vereinen? Warum hat dein Spieler eine Liste mit Spielern?

Wie ist es denn in Wirklichkeit? Ein Verein hat eine Liste mit Spielern!
Wer hat eine Liste mit den Vereinen? Keine Ahnung, vielleicht eine Liga oder ein Vereinsmanager...


Code:
spielerlisteverein
hat in der Klasse Spieler nichts zu suchen.
genau!
 

scue

Mitglied
vielen dank, habe das jetzt mit den listen kapiert. mein code sieht jetzt so aus
Java:
package standard;

import java.awt.List;
import java.util.ArrayList;

public class Verein {
	String name;
	static ArrayList<Verein> vereinsliste = new ArrayList<Verein>(); 
	ArrayList<Spieler> spielerliste = new ArrayList<Spieler>();
	int gruendungsjahr;

	public Verein(String aname, int agruendung) {
		this.name = aname;
		this.gruendungsjahr = agruendung;
		vereinsliste.add(this);
	}
	
	private void addSpieler(Spieler spieler) {
		spielerliste.add(spieler);
	}

	public static void main(String[] args) {
		Verein bremen = new Verein("bremen", 1821);
		bremen.addSpieler(new Spieler("borrowski", 175));
		bremen.addSpieler(new Spieler("xxxx", 176));

		Verein muenchen = new Verein("münchen", 1721);
		muenchen.addSpieler(new Spieler("gomez", 178));
		muenchen.addSpieler(new Spieler("xxxxx", 179));
		muenchen.addSpieler(new Spieler("xxxxxx", 180));

		for (Verein item : vereinsliste) {
			System.out.println(item.name + ", " + item.gruendungsjahr);
			for (Spieler spieler : item.spielerliste)
				System.out.println(spieler.spielername + ", "
						+ spieler.spielergroese);
			System.out.println();
		}
	}

}

eine letzte frage habe ich noch, ich möchte es später soweit bringen, dass man mittels formular mehrere vereine mit anlegen kann. wie vergibt man denn dann am besten den objektnamen? ich wüsste jetzt nicht, wenn ich als eingabewert meinetwegen dortmund habe, wie ich die codezeile
Java:
Verein dortmund= new Verein("dortmund", 1821);
erreiche.

EDIT:
Java:
new Verein("bremen", 1821);
		vereinsliste.get(0).addSpieler(new Spieler("borrowski", 175));
		vereinsliste.get(0).addSpieler(new Spieler("xxxx", 176));
ok hätte es jetzt so gelöst, aber dann muss man jedesmal ersteinmal die index zahl des vereins ermitteln oder? wenn zwei vereine mit dem gleichen namen da wären ( macht ja wenig sinn, aber dennoch), welchem objekt würde er es dann hinzufügen?
 
Zuletzt bearbeitet:

tagedieb

Top Contributor
Ganz einfach. Nenn die Variable 'verein' oder 'neuerVerein'. Aber ich glaube dein Problem liegt in der DatenStruktur. Wenn du auf einen bereits existierenden Verein zugreifen willst musst du die Vereinsliste durchsuchen. Eventuell wuerde sich hier ein Map anbieten.


Java:
public void gruendeNeuerVerein(name, gruendungsJahr) {
    Verein neuerVerein = new Verein(name, gruendungsJahr);
    .
    .
}
 

scue

Mitglied
Java:
public void gruendeNeuerVerein(name, gruendungsJahr) {
    Verein neuerVerein = new Verein(name, gruendungsJahr);
    .
    .
}

ich habe es jetzt so probiert, und da wird mir duplicated variable gesagt, was ich auch nachvollziehen kann.
Java:
String name2 = "dortmund";
Verein name2 = new Verein("name2", 1909);
 

tagedieb

Top Contributor
Am besten erklärst du uns mal was du vorhast. Dann können wir dir auch besser helfen.

Vergiss die lokale Variable, die ist fluechtig und nur in der Methode relevant in der sie gebraucht wird.
Deine Vereine speicherst du in der Vereinsliste. Am Ende der Methode existiert nur noch die Referenz aus der Vereinsliste auf deinen Verein. Willst du auf einen bereits existierenden Verein zugreifen musst du die Vereinsliste durchsuchen.

Deswegen denke ich eine HashMap wuerde besser passen.

Java:
java.util.Map<Verein> vereine = new java.util.HashMap<Verein>();

// neuer Verein hinzufuegen
vereine.put("bremen", new Verein("bremen", 1821));
vereine.put("münchen", new Verein("münchen", 1721));

// auf existierenden Verein zugreifen
Verein verein = vereine.get("bremen");
System.out.println(verein.name);

// auf existierenden Verein zugreifen; lokale Variable 'verein' wiederverwenden
verein = vereine.get("münchen");
System.out.println(verein.name);

// auf existierenden Verein zugreifen; neue lokale Variable 'verein2' anlegen
Verein verein2 = vereine.get("bremen");
System.out.println(verein2.name);
 

ARadauer

Top Contributor
ich habe es jetzt so probiert, und da wird mir duplicated variable gesagt, was ich auch nachvollziehen kann.
Java:
String name2 = "dortmund";
Verein name2 = new Verein("name2", 1909);

jetzt laufen wir in die falsche richtung...
Schau dir die zwei Zeilen mal an... das macht 0 Sinn!
 

scue

Mitglied
jetzt laufen wir in die falsche richtung...
Schau dir die zwei Zeilen mal an... das macht 0 Sinn!

jo hab ich ja gesagt.

ich habe das mit den hash maps jetzt mal probiert, vielleicht ist das ja wirklich besser, aber es funktioniert nicht ganz. ich bekomme bei der initialisierung der hashmap den folgenden fehler:Incorrect number of arguments for type Map<K,V>; it cannot be parameterized with arguments <Verein>

die hash map muss doch auch static sein oder? wäre ja der ersatz für die arraylist.

meine vereine klasse sieht so aus.

Java:
package standard;

import java.awt.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Verein {
	String name;
	//static ArrayList<Verein> vereinsliste = new ArrayList<Verein>();
	static ArrayList<Spieler> spielerliste = new ArrayList<Spieler>();
	static Map<Verein> vereine = new HashMap<Verein>();
	int gruendungsjahr;

	public Verein(String aname, int agruendung) {
		this.name = aname;
		this.gruendungsjahr = agruendung;
	//	vereinsliste.add(this);
	}

	private void addSpieler(Spieler spieler) {
		spielerliste.add(spieler);
	}

	public static void main(String[] args) {

		// neuer Verein hinzufuegen
		vereine.put("bremen", new Verein("bremen", 1821));
		vereine.put("münchen", new Verein("münchen", 1721));

		// auf existierenden Verein zugreifen
		Verein verein = vereine.get("bremen");
		System.out.println(verein.name);

		// auf existierenden Verein zugreifen; lokale Variable 'verein'
		// wiederverwenden
		verein = vereine.get("münchen");
		System.out.println(verein.name);

		// auf existierenden Verein zugreifen; neue lokale Variable 'verein2'
		// anlegen
		Verein verein2 = vereine.get("bremen");
		System.out.println(verein2.name);
	}
}

edit:
fehler gefunden:
static Map<Verein> vereine = new HashMap<Verein>();
=
static Map<String, Verein> vereine = new HashMap<String, Verein>();
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Erste Schritte Verkettung von Anweisungen Java Basics - Anfänger-Themen 4
Faromatik Verkettung von Klassen Java Basics - Anfänger-Themen 5
gamebreiti Problem mit Setter in Superklasse Verkettung der Kostruktoren??? Java Basics - Anfänger-Themen 7
S Unsortierte Listen - Frage zur "Verkettung" Java Basics - Anfänger-Themen 1
I Compiler-Fehler Problem bei Verkettung Java Basics - Anfänger-Themen 9
C Problem bei der Verkettung von Aufrufen Java Basics - Anfänger-Themen 14
M Verkettung von Methoden? Java Basics - Anfänger-Themen 3
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
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
1 Arrays Java Basics - Anfänger-Themen 7
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
D Collections Arrays in ArrayList abspeichern Java Basics - Anfänger-Themen 6
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J 2D Arrays summieren Java Basics - Anfänger-Themen 21
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
A Java.util.Arrays Java Basics - Anfänger-Themen 15
T Methodenverknüpfung mit Arrays Java Basics - Anfänger-Themen 4
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
B Arrays Java Basics - Anfänger-Themen 4
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben