ArrayList Objekte verschwinden

robochris

Aktives Mitglied
Hallo Zusammen,

in einer Klasse verwende ich "ArrayList". Allerdings gibt es eine Problem: wenn ich ein Methode der Klasse aufrufe, die aus einer anderen Klasse Objekte zu der ArryList hinzufügt, scheinen diese zu verschwinden, wenn die Methode in der aufrufenden Klasse beendet wurde. Kann das sein?

Vielen Dank im Voraus für die Hilfe
 

HoaX

Top Contributor
Nein, kann nicht sein. Von alleine verschwindet nix aus ner Liste.
Entweder du fügst sie nicht hinzu oder du löscht sie irgendwo. Sicher dass du sie in die richtige Liste einfügst?
 

robochris

Aktives Mitglied
Soweit ich es verstanden habe, werden in einer Liste ja nur die Refenzen auf Objekte gespeichert, nicht die Datn des Objekts selbst. D.h. Wenn ein Objekt verschwindet, auf das die Liste zeigt, ist das Objekt in der Liste weg. Nur die Referenz ins Nirvana bleibt übrig, oder?
 

Landei

Top Contributor
Ein Objekt kann nur dann "verschwinden" (garbage collected werden), wenn du keine Möglichkeit mehr hast, es über Referenzen zu erreichen. Ist es in einer ArrayList, hält selbige Referenzen auf das Objekt, und egal was sonst passiert, können die Objekte nicht verloren gehen, da du sie ja noch erreichen kannst.
 

ARadauer

Top Contributor
Wenn ein Objekt verschwindet, auf das die Liste zeigt, ist das Objekt in der Liste weg
ein Objekt kann nicht "verschwinden" wenn jemand eine Referenz darauf hat, java ist nicht c wo man wild im Speicher herum randalieren kann. ;-)

Ich vermute du hast zwei listen... poste mal ein bisschen code...
 

frostbyte

Aktives Mitglied
Eventuell legst du irgendwie eine Kopie der Liste an und vernichtest diese oder du legst eine neue Liste mit gleichem Namen an, die die andere verdeckt.

@ARadauer: Ich würde das anders sehen, in C muss man nachher wieder aufräumen, in Java kann man jede Menge Müll erzeugen und muss sich nicht drum kümmern.
 
S

SlaterB

Gast
oder gerade keine Kopie, die Liste wird an Stelle X scheinbar gesichert, in eine Variable geschrieben
woanders verändert oder gar geleert, das wirkt sich dann auch auf X aus, weil X dieselbe Liste verwendt
 

robochris

Aktives Mitglied
Also,

es gibt die Klasse MessKurven, in der sollen verschieden Messkurven in einer ArryList gespeichert werden.
Erzeugt werden die Kurven in der GuiMain.
Dann sollen die Kurven in der Klasse Graph dargestellt werden.
Ein Test mit System.out.println zeigt, dass eine Kurve in der GuiMain erzeugt wird. Beim Aufruf von Graph zeigt sich aber, dass die ArrayList leer ist.

Java:
public class MessKurven {

	private ArrayList<MessKurve> kurven;

	private int aktuelleKurve=0;

	

	public MessKurven (){

		kurven=new ArrayList<MessKurve>();

		aktuelleKurve=-1;

	}

	

	....

	

	public void add(MessKurve m){

		kurven.add(m);

		aktuelleKurve=kurven.size()-1;

		System.out.println("Anzahl Kurven: "+(aktuelleKurve+1));

	}

	....



public class GuiMain {

	

	public Diagram Kurvendiagramm;

	public MessKurven kurven;

	....

	

	public GuiMain(){



		kurven=new MessKurven();

		...

		MessKurve m=new MessKurve("plot1");

		kurven.add(m);



		Kurvendiagramm.set(kurven);

		for(int n=0;n<20;n++)

		{

			m.add((int)(Math.random()*800));

			//Kurvendiagramm.repaint();

		}

		Kurvendiagramm.repaint();

		....

	}

		


	

public class Graph extends JPanel

{

	private MessKurvePlotter plotter;

	private MessKurven messKurven;

	

	....

	public void set(MessKurven kurven){

		messKurven=kurven;

	}

	....

	

	@Override 

	protected void paintComponent(Graphics g)

	{

		super.paintComponent(g); // original paintComponent aus JPanel aufrufen

		....

		for(int m=0;m<messkurven.length;m++)

		{

			g.setFont (new Font ("Courier", Font.BOLD, fontSize));

			g.drawString(messkurven[m].name, zeichenflaecheOffset.x, fontSize*(m+1));

			

			plotter.zeichnen(g, messKurven.getMessKurve(0));

		}

		...
 
S

SlaterB

Gast
aus unvollständigen GUI-Programmen ist nicht viel herauszulesen,
außer dass vielleicht nicht genau dann gepaintet wird wenn du das gerne hättest, etwa genau beim repaint(),

System.out.println()-Ausgaben sind in ihrer Reihenfolge aber recht verlässlich,
bist du dir sicher dass erst etwas eingefügt wird und dann sich paint mit einer anderen Ausgabe meldet?

folgendes Programm habe ich aus deinen Bruchstücken ergänzt, geht tadellos
Java:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        new GuiMain();
    }
}


class MessKurven
{
    private ArrayList<MessKurve> kurven;
    private int aktuelleKurve = 0;

    public MessKurven()
    {
        kurven = new ArrayList<MessKurve>();
        aktuelleKurve = -1;
    }

    public void add(MessKurve m)
    {
        kurven.add(m);
        aktuelleKurve = kurven.size() - 1;
        System.out.println("Anzahl Kurven: " + (aktuelleKurve + 1));
    }

    public int size()
    {
        return kurven.size();
    }
}


class MessKurve
{
}


class GuiMain
{
    public Graph Kurvendiagramm; // Variablen klein schreiben!!
    public MessKurven kurven;

    public GuiMain()
    {
        kurven = new MessKurven();
        MessKurve m = new MessKurve();
        kurven.add(m);
        Kurvendiagramm = new Graph();
        Kurvendiagramm.set(kurven);
        Kurvendiagramm.repaint(); // in meinem Programm sinnlos, GUI noch gar nicht zu sehen

        JFrame f = new JFrame();
        f.add(Kurvendiagramm);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(50,50);
        f.setVisible(true);
    }
}


class Graph
    extends JPanel
{
    private MessKurven messKurven;

    public void set(MessKurven kurven)
    {
        messKurven = kurven;
    }

    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g); // original paintComponent aus JPanel aufrufen
        System.out.println("paint: " + messKurven.size());
    }
}
Ausgabe:
Code:
Anzahl Kurven: 1
paint: 1
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
R Objekte zur Laufzeit in Schleife erzeugen und in ArrayList ablegen Java Basics - Anfänger-Themen 4
N Objekte in ArrayList finden Java Basics - Anfänger-Themen 10
G Datentypen verschiedene Objekte in eine ArrayList, Generics Java Basics - Anfänger-Themen 2
S Objekte in ArrayList eintragen und auslesen Java Basics - Anfänger-Themen 7
A Objekte einer ArrayList auslesen und auf der Konsole ausgeben Java Basics - Anfänger-Themen 2
D Klassen Objekte nach erstellung in ArrayList speichern Java Basics - Anfänger-Themen 5
T gemeinsame Methode für ArrayList vererbter Objekte Java Basics - Anfänger-Themen 6
L Auf Objekte in Arraylist zugreifen Java Basics - Anfänger-Themen 6
G Methoden Alle Objekte der ArrayList ausgeben funktioniert nicht. Java Basics - Anfänger-Themen 12
G Objekte aus ArrayList in StringArray konvertieren?! Java Basics - Anfänger-Themen 13
S ArrayList oder die Objekte in H2 Database speichern Java Basics - Anfänger-Themen 11
W bestimmte Objekte in ArrayList auslesen Java Basics - Anfänger-Themen 8
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
bluerob generische ArrayList -> erbende Objekte auslesen Java Basics - Anfänger-Themen 24
A ArrayList bzw. Objekte übergeben Java Basics - Anfänger-Themen 6
X Collections Reihenfolge bestimmter Objekte in einer ArrayList verändern Java Basics - Anfänger-Themen 2
S Objekte aus Arraylist richtig ansprechen Java Basics - Anfänger-Themen 5
I OOP Objekte in einer ArrayList Java Basics - Anfänger-Themen 5
C Objekte in ArrayList Java Basics - Anfänger-Themen 6
I Objekte aus arrayList Java Basics - Anfänger-Themen 2
D X Werte in ArrayList von Point Objekte alle gleich ? Java Basics - Anfänger-Themen 11
D Objekte auf Knopfdruck in Arraylist erzeugen Java Basics - Anfänger-Themen 2
M Objekte mit Schleife in ArrayList erstellen? Java Basics - Anfänger-Themen 6
T Probleme mit ArrayList, in der Objekte gespeichert sind, die ArrayLists enthalten Java Basics - Anfänger-Themen 2
Semox Sind Objekte in einer ArrayList überschreibbar? Java Basics - Anfänger-Themen 2
J Datensätze aus einer DB als Objekte erzeugen und in ArrayList abspeichern Java Basics - Anfänger-Themen 9
M Objekte aus einer Arraylist löschen Java Basics - Anfänger-Themen 7
L Objekte in einer ArrayList vergleichen Java Basics - Anfänger-Themen 19
H bestimmte objekte in ArrayList löschen? Java Basics - Anfänger-Themen 7
G Die Objekte eine ArrayList sortieren Java Basics - Anfänger-Themen 50
X Aus XML Datei Objekte in Arraylist laden - Fehler! Java Basics - Anfänger-Themen 9
H Objekte aus Text-Datei wieder in ArrayList laden Java Basics - Anfänger-Themen 8
G Objekte in ArrayList vertauschen :( Java Basics - Anfänger-Themen 13
A Objekte in ArrayList anhand Variable sortieren Java Basics - Anfänger-Themen 10
I Objekte in ArrayList Java Basics - Anfänger-Themen 3
E Zugriff auf Objekte in einer ArrayList Java Basics - Anfänger-Themen 3
B Objekte aus Datei auslesen und in ArrayList schreiben! Java Basics - Anfänger-Themen 25
J Objekte einer ArrayList in eine Tabelle einfügen Java Basics - Anfänger-Themen 2
krgewb ArrayList allgemein halten Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
W ArrayList und toString Java Basics - Anfänger-Themen 17
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
M 2d ArrayList durchgehen Java Basics - Anfänger-Themen 2
Blkckroll45 Arraylist Java Basics - Anfänger-Themen 6
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
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
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
thobren jtable arraylist Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
Zeppi OOP ArrayList Java Basics - Anfänger-Themen 2
P ArrayList Java Basics - Anfänger-Themen 4
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
M For Schleife/ArrayList Java Basics - Anfänger-Themen 12
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
M ArrayList in GUI ausgeben Java Basics - Anfänger-Themen 1
J Nur bestimmter Typ aus der ArrayList ausgeben. Java Basics - Anfänger-Themen 9
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
krgewb ArrayList von ArrayList Java Basics - Anfänger-Themen 2
R ArrayList Problem Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben