Listen, über Listen. und doch kein Überblick

Status
Nicht offen für weitere Antworten.

Geekhead

Mitglied
Grüße an alle!

Nachdem ich jetzt fast 16 Stunden am rumsuchen, ausprobieren, etc. war, frag ich hier mal nett nach Hilfe :)

Also ich hab folgendes Datenbankmodel (gekürzte Fassung, ich will es verstehn und keine Lösung)

Mandant
id
name


Konto
id
name
mandantId


Kunde
id
name
kontoId


Relation:
1 Mandant : N Konten
1 Konto : N Kunden

Mein Versuch:

Klasse Mandant,
int id
string name
ArrayString<Konto>
Getter/Setter
equals

Klasse Konto
int id
string name
ArrayString<Kunde>
Getter/Setter
equals

Klasse Kunde
int id
string name
Getter/Setter
equals


und habe probiert das über eine Wrapperklasse zu lösen... bin kläglich gescheitert :(

In PHP würde ich so ein Fall recht simpel lösen indem ich mir einfach ein mehrdimensionales Array ála
Array[Object1][Object2][Object3]

Das könnte ich natürlich auch so in Java umsetzen... aber ich versuche Java richtig zu lernen und nicht
mit Quick n Dirties zu arbeiten...


Also - welche Wege geht Ihr um mehrere Objekte in Relation zueinander in eine Art "Liste" abzubilden?
Für Anregungen (und ein kleines Beispiel vielleicht?) wäre ich sehr dankbar!

Hintergrund:
Das ganze soll dann später in einer jTable ausgegeben werden, die Sortierung übernimmt die jTable selbst (1.6 wird benutzt)

Grüße
 
B

bygones

Gast
der ansatz schaut schon gut aus... nur mit der info und habe probiert das über eine Wrapperklasse zu lösen... bin kläglich gescheitert kann dir keiner helfen...

was geht nicht, was willst du und und und ?

btw: Was ist ArrayString ?
 

Geekhead

Mitglied
:lol: das sollte ArrayList heissen :)

Ich habe drüber die Wrapperklasse Nornir gebaut.
Hatte folgendes probiert:

Mandant vererbt zu Konto vererbt zu Kunde vererbt zu Nornir

So müsste Nornir demnach keine Fields (sind private), aber alle getter/setter von Kunde, Konto und Mandant haben.
Zusätzlich habe ich in Nornir noch mehrere ArrayLists anlegt um wiederum das korrekt zu halten.

Das ganze sah dann etwa so aus:
Code:
ArrayList<Nornir> datList = new ArrayList<Nornir>(3);
rs.next();
Nornir initialNornir = new Nornir();

// hab nen passenden Constructor
initialNornir.setMandatorNornin(rs.getInt("mandatorId"), rs.getString("mandatorName"));
// hier auch...
initialNornir.addBalance(rs.getString("balanceId"), rs.getString("balanceName"));

datList.add(initialNornir);
Ab hier hatte ich mich dann gefragt ob das wirklich so sinn macht...

Denn nun würde es quasi dann so weitergehn (semicode):
Prüfe ob Mandant gleich ist:
Wenn Mandant gleich ist, dann
Prüfe ob Balance gleich ist
Wenn Balance nicht gleich
füge der ArrayList<Balance> von dem richtigen Mandanten ein neues Balance Element hinzu
.....

Und das wäre am Schluss ein richtig übler Brocken... deshalb kam die Frage auf ob man das nicht geschickter Lösen kann?
Ich bräuchte quasi einen richtigen Baum, aber das gibts in Java nicht...
 
B

bygones

Gast
ich versteh nicht warum die alle von einander erben muessen.

was haben Kunde und Konto logisch gemeinsam ? wer ist warum die superklasse ?

nein... also fuer mich macht schonmal diese vererbung komplett keinen sinn...
 
G

Gast

Gast
Also - welche Wege geht Ihr um mehrere Objekte in Relation zueinander in eine Art "Liste" abzubilden?

Hi,
Listen und Java läuft eigentlich immer auf java.util.List hinaus. Dabei handelt es sich um ein einfaches Interface, dessen Implementierungen (wenig überraschend) die Funktionalität einer Liste (dyn. Struktur) zur Verfügung stellen. In seit Java 1.5 können diese Listen über Generics auch "typisiert" werden.
Die Arbeit mit solchen Listen ist recht einfach, mal das minimale Beispiel:

Code:
java.util.List<String> myList = new java.util.ArrayList<String>();

myList.add("Hallo");
myList.add("World!");

for (element: myList) {
  System.out.println(element);
}

Damit hast Du schon mal eine einfache Struktur, in der Du eine beliebige Anzahl von Elementen eines Typs verwalten kannst. Was die Relation zwischen Objekten angeht, so wird in der OOP mit Verweisen auf Objekte gearbeitet. In Java werden alle Variablen, deren Typ eine Klasse ist (also so ziemlich alles was mit einem Großbuchstaben beginnt), automatisch als Referenzen übergeben.
Wenn Du also einer Variablen ein Objekt zuweist, so wird keine Kopie des Objekts in diese Variable geschrieben, sondern lediglich eine Referenz auf das Objekt gespeichert.

Wieder ein Beispiel:
Code:
class A {
  int x;
}

class B {
  A a;
}

class C {
  public static void main(String[] args) {
    A a = new a();
    a.x = 10;
  
    B b1 = new b();
    B b2 = new b();
  
    b1.a = a;
    b2.a = a;

    a.x = 20;
    b2.a = new A();
    b2.a.x = 0;

    System.out.println("a: " + a.x);
    System.out.println("B1: " + b1.a.x);
    System.out.println("B2: " + b2.a.x);
  }
}

Die Idee ist ganz einfach, Du hast eine Klasse A, die ein Int speichert und eine Klasse B, die eine Referenz auf ein A speichert. Nun legst Du ein A und zwei B an (a, b1 und b2). Bei a setzt Du nun die Variable X und weißt dieses Objekt den beiden B's zu. Veränderst Du nun a, so wirkt sich die Änderungen auch auf die B-Objekte aus, da diese wie die Variable a auf das gleiche A Objekt zeigen. b2 wird zudem noch eine neue Instanz von A zugewiesen. Das soll nochmals verdeutlichen, dass die Variable eine Referenz speichert. b2 verweist somit nur auf ein neues Objekt, das alte (a und b1.a) bleibt dabei komplett erhalten, b2 verweist nun einfach nur auf eine andere Adresse im Speicher.

Hast Du 1:n Beziehungen, so kannst Du das ganze in analoger Form auf Objekte abbilden. Eine Möglichkeit besteht darin, dass Du in einem Objekt die n-Referenzen in einer Liste/einem Array speicherst. Umgekehrt kann auch jedes der n-Objekte einen Verweis auf das eine Objekt speichern.
 

Geekhead

Mitglied
Vielen Dank Gast für deine ausführliche Antwort!
Ich werde mich dem Morgen mal genauer widmen und dann meine Ergebnisse posten.

Denke aber es hat eben ein bischen Klick gemacht :)
 

Geekhead

Mitglied
Ach ich leg mal die Quellen offen, dann wirds denke ich mal deutlicher wo mein Problem liegt.
Ich möchte nicht ausschließen das ich einfach einen Fehler bei der Überlegung gemacht habe!
Der Code soll jetzt nicht als "so in etwa sollte es sein!" angesehn werden! Das ist einfach mein
Lösungsversuch. Bin natürlich offen für bessere Vorschläge!

Ich hab das ganze so probiert...
Wie ihr seht - das ganze reiht sich ins unendliche dann auf und wird schwierig mit einem ResultSet zu befüllen...

Mandator.java
Code:
public class Mandator {
	private int mandatorId;
	private String mandatorName;
	private ArrayList<Balance> balanceList = new ArrayList<Balance>(5);
	
getter/setter
}

Balance.java
Code:
public class Balance {
	private String balanceId;
	private String balanceName;
	private Mandator mandator;
	private ArrayList<Customer> customerList;

getter/setter
}

Customer.java
Code:
public class Customer {
	private String customerId;
	private String customerName1;
	private ArrayList<String> billsList;

getter/setter
}



Nornir.java
Code:
public static void main(String[] args) {
	Mandator mandator = new Mandator();
	mandator.setMandatorId(1);
	mandator.setMandatorName("Test");
		  
	Balance balance = new Balance();
	balance.setBalanceId("10");
	balance.setBalanceName("Hauptkonto");
		  
	mandator.getBalanceList().add(balance);
		  
	Customer customer = new Customer();
	customer.setCustomerId("777");
	customer.setCustomerName1("GuckMaAn");

	balance.getCustomerList().add(customer);
}

Produziert eine Exception "Exception in thread "main" java.lang.NullPointerException" in der Zeile "balance.getCustomerList().add(customer);"
 

Geekhead

Mitglied
Ok, also scheint das ganze wohl doch komplizierter zu sein :D
Dann bin ich ja beruhigt das es nicht an meiner Unfähgikeit liegt *g*
 

byte

Top Contributor
Offenbar ist customerList in Balance null. Prüfe, ob zum Zeitpunkt des add() die Liste schon mit new erzeugt wurde.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Listen in Listen in Listen ... ??? Java Basics - Anfänger-Themen 2
XWing listen Java Basics - Anfänger-Themen 7
FunkyPhil94 addLast und addFirst bei Listen Java Basics - Anfänger-Themen 6
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L Skip Listen Java Basics - Anfänger-Themen 5
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
L Wie testet man (selbstgeschriebene) Listen sinnvoll? Java Basics - Anfänger-Themen 2
F Problem mit Listen Java Basics - Anfänger-Themen 5
J Listen Operationen Java Basics - Anfänger-Themen 4
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Sortierte Listen Java Basics - Anfänger-Themen 4
L Datenstrukturen/ Listen Java Basics - Anfänger-Themen 17
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
L Listen und Felder Java Basics - Anfänger-Themen 2
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
R Arrays und Listen Java Basics - Anfänger-Themen 1
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
F Multidimensionale Listen Java Basics - Anfänger-Themen 3
F Wie String in unterschiedliche Listen teilen Java Basics - Anfänger-Themen 7
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
T Objekte in Listen vererben Java Basics - Anfänger-Themen 3
A Klassen Klassen und Listen... Java Basics - Anfänger-Themen 5
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
C Listen Java Basics - Anfänger-Themen 3
C Zwei Listen verbinden Java Basics - Anfänger-Themen 1
C Zahlen merken mit Hilfe von Arrays/Listen Java Basics - Anfänger-Themen 2
E Feld von verketteten Listen Java Basics - Anfänger-Themen 11
T Überprüfung einer Aufgabe zu verketteten Listen Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
JarJarBigs Frage zu Listen Java Basics - Anfänger-Themen 2
N verkettete Listen Java Basics - Anfänger-Themen 4
O Listen sort-Methode Java Basics - Anfänger-Themen 1
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
L Lineare Listen Java Basics - Anfänger-Themen 2
S Listen Objekte nach LocalDateTime sortieren Java Basics - Anfänger-Themen 2
D Methoden Listen generieren Java Basics - Anfänger-Themen 4
A Sichtbarkeit in Methoden/Listen Java Basics - Anfänger-Themen 3
M verkettete Listen Java Basics - Anfänger-Themen 1
D Klausur Vorbereitung: Listen, Rekursion, Bäume & Vererbung Java Basics - Anfänger-Themen 3
S Vergleich von Listen Java Basics - Anfänger-Themen 6
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 2
M Listen erstellen mit unterschiedlichen Reihenfolgen Java Basics - Anfänger-Themen 3
I Zwei Listen vergleichen bei n:m Beziehung Java Basics - Anfänger-Themen 2
I Zwei Listen: Wenn nicht vorhanden löschen Java Basics - Anfänger-Themen 4
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
S Unsortierte Listen - Frage zur "Verkettung" Java Basics - Anfänger-Themen 1
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 7
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
P Listen Size stimmt nicht Java Basics - Anfänger-Themen 5
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
L Collections Objekte in Listen speichern Java Basics - Anfänger-Themen 3
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
D Annonyme Innere Klasse: Listen mit geradem Index ausgeben Java Basics - Anfänger-Themen 6
G Listen sortieren Java Basics - Anfänger-Themen 3
G Generic und Listen Java Basics - Anfänger-Themen 8
R SQL ähnlicher Filter für Java Listen Java Basics - Anfänger-Themen 2
Y Collections 4 Listen Java Basics - Anfänger-Themen 14
S OOP/ Listen...etc... Java Basics - Anfänger-Themen 14
E Listen Java Basics - Anfänger-Themen 2
V Methoden Verkettete Listen Index eines Elementes ausgeben Java Basics - Anfänger-Themen 10
B Listen Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
B Map per Listen Java Basics - Anfänger-Themen 2
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
Joew0815 Problem mit Listen: add() Java Basics - Anfänger-Themen 11
P Zeichenorientierte & Serialisierte Datenverarbeitung Listen Java Basics - Anfänger-Themen 8
E Listen und Generics Java Basics - Anfänger-Themen 9
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
E Listen und Duplikate Java Basics - Anfänger-Themen 2
R Hilfe bei Listen Java Basics - Anfänger-Themen 10
F Collections Liste von Listen Java Basics - Anfänger-Themen 21
A Methoden Anfängerfrage: 2 Listen Vergleichen Java Basics - Anfänger-Themen 7
walker23m C++ Listen iteratoren in Java umwandeln Java Basics - Anfänger-Themen 3
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
N Listen Java Basics - Anfänger-Themen 5
S Listen Klasse selbst schreiben Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben