Vektor in Vektor speichern?

Status
Nicht offen für weitere Antworten.
Hallo zusammen,

ich habe ein Problem:


Eine Funktion fragt aus einer SQL DB mehrere Objekte ab und speichert diese dann in Vektoren.
Es sind 4 verschiedene Tabellen und Objekte und auch 4 Vektoren.

Wie gebe ich nun diese Vektoren bei RETURN zurück?

Ich dachte mir, ich packe die vier gefüllten Vektoren wiederum in einen Vektor und gebe den zurück
aber dann klappt hinterher beim Aufruf der Objekte im Vektor nichts mehr.

Entweder caste ich falsch oder man darf Vektoren einfach nicht in einem Vektor ablegen :)

Beispiel:


Code:
Objekt   Ort (int id, String ortname, String land)

Vektor vOrt;

vOrt.add(Ort);  (x mal für x Orte)


Vektor vContainer;

vContainer.add (vOrt);
So ungefähr wiederhole ich es auch für die anderen 3 Objekte.


zum Schluß gibt die Funktion nun "return vContainer".



In der aufrufenden Klasse möchte ich die vier einzelnen Vektoren wieder in einen Vektor pro Objekt speichern,
damit ich die abgelegten Objekte holen kann, was scheinbar noch geht

Beispiel:

Code:
Vector vOrte = (Vector) vContainer.get(0)
Aber will ich nun

Code:
Ort myOrt =  (Ort) vOrte.get(0)
aufrufen, gibt es eine NullPointerException obwohl mir als vOrte Länge 185 ausgegeben wird, der Vektor also nicht leer ist.




Kann mir jemand weiterhelfen?

Vielen Dank



P.S.:

Rufe ich anstelle der Funktion, die alle 4 Vektoren zurückgeben soll
vier einzelne Funktionen, die mir jeweils einen der Vektoren geben,
ich also auf einen Vektor als Vektorcontainer verzichten kann,
habe ich keine Probleme.
Leider wird dann 4 mal eine DB Verbindung aufgebaut und geschlossen, was bei HSQLDB
sehr lange dauert (File-DB da kein DB Server vorhanden ist)
 

mikachu

Top Contributor
Code:
Vector<Vector<Object>> vectors; // geht auf jeden :)
//...
Vector<Object> v1 = vectors.get(0); // sollte auch gehen

was kommt den aus den anderen 3 tabellen?
sind das auch "orte" ?
 
Das Ganze ist ein Maintenance/Hotline Ticket System.


Die Tabellen/Objekte sind:


User
Ort
Problem
Aktion


mit jeweils unterschiedlichen Inhalten.

Das Programm selbst steht schon eine Weile und ich will eigentlich nur meinen alten Code endlich mal optimieren, da es durch die vielen Einzelabfragen sehr langsam reagiert.
 

mikachu

Top Contributor
@JKPI Vectoren sind auch nur erweiterte Listen... würde also nicht so viel bringen

BTT:
erstmal für Ort, User, Problem und Aktion ne eigene Klasse bauen...
Code:
public Vector getXXX()
{
    Vector<Ort> vOrt = new Vector<Ort>();
    Vector<User> vUser = new Vector<User>();
    Vector<Problem> vProblem = new Vector<Problem>();
    Vector<Aktion> vAktion = new Vector<Aktion>();

    Vector vGesamt = new Vector();
    vGesamt.add( vOrt );
    vGesamt.add( vUser );
    vGesamt.add( vProblem );
    vGesamt.add( vAktion );

    return vGesamt;
}
//.....
Vector vReceived = getXXX();
Vector<Ort> vOrtReceived = vReceived.get( 0 ); //mglws noch casten
Vector<User> vUserReceived = vReceived.get( 1 );
Vector<Problem> vProblemReceived = vReceived.get( 2 );
Vector<Aktion> vAktionReceived = vReceived.get( 3 );

#not tested#
 
Es gibt natürlich bereits pro Objekt eine Klasse :)

Ich habe es gerade eigentlich identisch mit deinem Vorschlag gemacht.


Code:
Vector<Ort> vOrtReceived = vReceived.get( 0 ); //mglws noch casten

Ergebnis:

Immer noch Nullpointer Exceptions x_x

Gibt es eine andere Möglichkeit der Rückgabe von mehreren Objektlisten?
 

mikachu

Top Contributor
wo treten denn die NPE's exakt auf?
Code:
Vector<Ort> vOrtReceived = (Vector<Ort>)vReceived.get( 0 );
 
Also nach dem Ausführen von

Code:
Vector<Ort> vOrtReceived = vReceived.get( 0 );

habe ich nun den vOrtReceived
Sobald ich ein Element ausgeben will,



Code:
Ort myOrt = vOrtReceived.get(0);
oder
Code:
Ort myOrt = (Ort) vOrtReceived.get(0);
und dann z.B.:

Code:
System.out.println(myOrt.gibName());


bekomme ich die Fehlermeldung.

Die Klasse Ort samt Funktionen ist soweit okay,
das Objekt in myOrt muß ein Problem haben.
 
Verflucht.... ich hab den Fehler gefunden.

Nach einem Test bei dem ich alle Objekte bis auf eins gemeinsam mit dem Containervektor geholt habe
und die Aktion-Objekte seperat über eine eigene Funktion geholt habe, hat es sofort wieder geklappt.

Ich habe jetzt also eine Weile die Vectorcontainerfüllung mit der Einzelfüllung des Aktion-Vektors betrachtet und festgestellt,
dass ich leider zwei temporärere Aktionsobjekte erzeugte hatte und das neuere zwar die SQL Daten zugewiesen bekommen hat aber das ältere dann (war mit Null initialisiert) in das Vektor Array geadded wurde.
Dadurch hatte ich natürlich einen genau gleichgroßen Vektor, aber gefüllt mit lauter identischen Null-Aktions Objekten...


:applaus:


Auch wenn es mich locker 4 Stunden gekostet hat,
hab ich viel Neues über Containerklassen, Generics und Vektoren allgemein gelernt.



Nun kann ich auch bestätigen, dass sich mehrere beliebige Vektoren in einem Vektor ablegen und später wieder extrahieren lassen.

Generics ist nicht nötig, aber bei komplexeren Methoden einfach sicherer und übersichtlicher.


Danke für eure Hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Objekte in einen Vektor speichern Java Basics - Anfänger-Themen 4
B Vektor vs List Java Basics - Anfänger-Themen 4
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
O Matrix, Vektor Java Basics - Anfänger-Themen 9
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
M transposen Vektor transformieren Java Basics - Anfänger-Themen 8
M Vektor Rechnung Java Basics - Anfänger-Themen 6
B Stützstellen (Vektor) erzeugen? Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
B Vektor addieren Java Basics - Anfänger-Themen 4
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
P Vektor im R3 drehen? Java Basics - Anfänger-Themen 14
M Map mit Vektor: Element hinzufügen Java Basics - Anfänger-Themen 21
A vektor bearbeiten?? Java Basics - Anfänger-Themen 9
V Position in einem Vektor Java Basics - Anfänger-Themen 3
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
A Wie greif ich auf Elemente eines Arrays in einem Vektor zu? Java Basics - Anfänger-Themen 6
D Array? ArrayList? Vektor? ...? Java Basics - Anfänger-Themen 6
C OOP Aus Vektor zufällig einen Eintrag wählen und in Array[][] schreiben Java Basics - Anfänger-Themen 5
Z Summe von Vektor-Elementen Java Basics - Anfänger-Themen 5
S Variable über den Vektor bestimmen Java Basics - Anfänger-Themen 20
J klasse vektor addition Java Basics - Anfänger-Themen 10
M Vektor Klasse Problem Java Basics - Anfänger-Themen 12
M Reihenfolge von Objekten im Vektor Java Basics - Anfänger-Themen 3
G Vektor auslesen und als int Variable casten Java Basics - Anfänger-Themen 4
G Mothoden von Objekten in Vektor aufrufen Java Basics - Anfänger-Themen 4
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
G Probleme mit Datenstrukturen (Vektor, HashMap) Java Basics - Anfänger-Themen 5
T Koordinaten eines Vektor übergeben Java Basics - Anfänger-Themen 21
J Vektor null setzen Java Basics - Anfänger-Themen 10
R Vektor in verketteter Liste Java Basics - Anfänger-Themen 14
J Vektor + auf Elemente zugreifen funktioniert nicht Java Basics - Anfänger-Themen 11
H Vektor auslesen und durchsuchen Java Basics - Anfänger-Themen 4
G Vektor Java Basics - Anfänger-Themen 1
C "null" Element Vektor abfragen Java Basics - Anfänger-Themen 7
C vektor erschaffen Java Basics - Anfänger-Themen 2
C Ein Element aus Mehrdimensionalem Vektor lesen Java Basics - Anfänger-Themen 2
L Vektor befüllen? Java Basics - Anfänger-Themen 3
G Doppelte (Paar) Werte in einem Vektor finden Java Basics - Anfänger-Themen 6
S kartesischer Vektor im n-dimensionalen Raum. Java Basics - Anfänger-Themen 7
M Vektor, gefüllt mit Objekten einer selbstdefinierten Klasse Java Basics - Anfänger-Themen 4
C checken ob ein Vektor leer ist Java Basics - Anfänger-Themen 3
J tast-Eingabe_(Vektor)Skalar-produkt Java Basics - Anfänger-Themen 19
G elemente in einem vektor nach ihren eigenschaften sortieren Java Basics - Anfänger-Themen 2
G Problem clone und Vektor Java Basics - Anfänger-Themen 4
M Vektor sortieren Java Basics - Anfänger-Themen 7
P Vektor toString? Java Basics - Anfänger-Themen 2
T Hashtable und Vektor Java Basics - Anfänger-Themen 3
I einlaggern von Objekten in ein Vektor Java Basics - Anfänger-Themen 10
G Vektor Java Basics - Anfänger-Themen 3
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
Marlena Bauer Konsolenausgabe in .txt speichern Java Basics - Anfänger-Themen 6
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
C File speichern Java Basics - Anfänger-Themen 5
D String und char in String speichern Java Basics - Anfänger-Themen 5
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
GermanPie Nachrichten Speichern Java Basics - Anfänger-Themen 2
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Wo Defaultpfad speichern? Java Basics - Anfänger-Themen 2
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben