Rückgabewert ändert sich?

Status
Nicht offen für weitere Antworten.

AlexDozer

Aktives Mitglied
Hi,

ich mache folgenden Aufruf:

Java:
			//Hole die Werte für die einzelnen Tags
			ArrayList<String> columns = xml.getValuesFromOneTag("column", "wert");
			ArrayList<String> tables = xml.getValuesFromOneTag("table", "wert");
			ArrayList<String> askvalue = xml.getValuesFromOneTag("askvalue", "wert");

Jetzt habe ich das Problem das in den ersten beiden Arrays genau das selbe drinsteht wie in dem letzten. Wie kann das sein? Ist mein Array nur eine Referenz auf ein anderes Array oder wie darf ich das verstehen? Wie behebe ich das Problem?

Gruß Alex
 
S

SlaterB

Gast
muss man xml.getValuesFromOneTag kennen?
was die Funktion liefert ist sonst entscheidend aber unbekannt,

die Listen kopieren könntest du mit new ArrayList(alteListe), auf Identität prüfen mit ==
 

AlexDozer

Aktives Mitglied
Java:
public class CXml {

    private Element root;
	private Element tag;
	
	private int amount_elements;
	private ArrayList<String> list;
		
	//Zum holen eines Tags eines mehreren vorkommenden Elementes
	public ArrayList<String> getValuesFromOneTag(String p_tag, String p_element)
	{
		clearArray();
		
		amount_elements = root.getChildren(p_element).size();
				
		for (int i = 0; i < amount_elements; i++)
		{
			tag = (Element) root.getChildren(p_element).get(i);
			list.add(tag.getChild(p_tag).getValue());
		}
		
		return list;
	}
	
	private void clearArray()
	{
		list.clear();
	}

Den Konstruktor sowie andere Methoden hab ich mal weggelassen damit es nicht zu unübersichtlich wird.
 

Schandro

Top Contributor
Die Methode gibt immer nur eine Referenz zurück, deswegen zeigen die Variablen columns, tables und askvalue auf exakt dasselbe.

Entweder gibts du jedesmal eine Kopie der ArrayList zurück, oder du machst "list" zu einer lokalen Variable und erstellst für jeden Aufruf eine neue ArrayList (was du bei der Kopie-Variante ja auch tun würdest...)
 

AlexDozer

Aktives Mitglied
Ich habe es jetzt so gelöst:
Java:
            ArrayList<String> columns = new ArrayList<String>(xml.getValuesFromOneTag("column", "wert"));
			ArrayList<String> tables = new ArrayList<String>(xml.getValuesFromOneTag("table", "wert"));
			ArrayList<String> askvalue = new ArrayList<String>(xml.getValuesFromOneTag("askvalue", "wert"));

@Schandro: Wie meinst du das mit "Entweder gibts du jedesmal eine Kopie der ArrayList zurück"?
 

Schandro

Top Contributor
es wär doch sinnvoller, IN der Methode getValuesFromOneTag die Kopie zu erstellen, anstatt sich darauf zu verlassen das es jeder Aufrufer macht.
 

ARadauer

Top Contributor
warum? macht ja keinen sinn!

spar dir die membervarialbe
private ArrayList<String> list;

und erstell in der methode getValuesFromOneTag eine neue arralist


und hört bitte auf ein C vor eine klasse zu schreiben ,-)
 

ARadauer

Top Contributor
Java:
public class CXml {
	 
    private Element root;
    private Element tag;
    
    private int amount_elements;
     
        
    //Zum holen eines Tags eines mehreren vorkommenden Elementes
    public ArrayList<String> getValuesFromOneTag(String p_tag, String p_element)
    {
        
    	ArrayList<String> list = new ArrayList<String>();
        amount_elements = root.getChildren(p_element).size();
                
        for (int i = 0; i < amount_elements; i++)
        {
            tag = (Element) root.getChildren(p_element).get(i);
            list.add(tag.getChild(p_tag).getValue());
        }
        
        return list;
    }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
B Rückgabewert boolean Java Basics - Anfänger-Themen 8
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
L Methoden Rückgabewert Verbergen / nicht mit ausgeben Java Basics - Anfänger-Themen 4
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
F Pascalsches Dreieck mit Rückgabewert Java Basics - Anfänger-Themen 2
D Dezimal zu Dual mit Rückgabewert Java Basics - Anfänger-Themen 39
Curtis_MC Methoden Rückgabewert von BiPredicate Java Basics - Anfänger-Themen 6
B Array als Rückgabewert in der Methode Java Basics - Anfänger-Themen 1
T Rückgabewert Problem Java Basics - Anfänger-Themen 2
A Methoden Rückgabewert Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
H Variablen Void und der Rückgabewert Java Basics - Anfänger-Themen 6
P Rückgabewert bestimmen Java Basics - Anfänger-Themen 17
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
D for-Schleife Rückgabewert Java Basics - Anfänger-Themen 6
M Rückgabewert bei Methoden Java Basics - Anfänger-Themen 6
C Rückgabewert von Kontruktoren Java Basics - Anfänger-Themen 15
S Methoden Bei Liste als Rückgabewert: IndexOutOfBoundsException Java Basics - Anfänger-Themen 1
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
O Was verursacht den Rückgabewert false bei der Methode ready() eines BufferedReaders Java Basics - Anfänger-Themen 9
K Methode ohne Rückgabewert in boolean Methode ändern Java Basics - Anfänger-Themen 6
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
S Rückgabewert null in Methode mit Thread Java Basics - Anfänger-Themen 2
M Anstatt 1 int Rückgabewert, mehrere Rückgaben mit Arraylist Java Basics - Anfänger-Themen 8
N Klassen constructor Rückgabewert Java Basics - Anfänger-Themen 10
C Methoden Rückgabewert von statischer Methode ignorieren Java Basics - Anfänger-Themen 8
MiMa Methode mit Rückgabewert Java Basics - Anfänger-Themen 2
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
T Variablen Rückgabewert aus einer Schleifen-Methode Java Basics - Anfänger-Themen 8
D Methode mit Rückgabewert Java Basics - Anfänger-Themen 5
K Rückgabewert einer Klassenmethode Java Basics - Anfänger-Themen 7
J Methoden mit und ohne Rückgabewert Java Basics - Anfänger-Themen 22
D Erste Schritte Als Rückgabewert Klasse Java Basics - Anfänger-Themen 5
D Rückgabewert Pixelgrabber Java Basics - Anfänger-Themen 3
S ArrayList und Rückgabewert Java Basics - Anfänger-Themen 2
T Methode - Rückgabewert Schreibweise Java Basics - Anfänger-Themen 6
S Interface Rückgabewert Java Basics - Anfänger-Themen 3
F if Anweisung mit Rückgabewert? Java Basics - Anfänger-Themen 4
I Rückgabewert von JSlider Java Basics - Anfänger-Themen 15
B Methoden, Rückgabewert und Verknüpfungen Java Basics - Anfänger-Themen 15
V OOP Klassen Methoden Rückgabewert Java Basics - Anfänger-Themen 15
C Datentypen Rückgabewert von "new FileInputStream" Java Basics - Anfänger-Themen 4
S Datentypen String mit fester Länge (Rückgabewert einer Methode) Java Basics - Anfänger-Themen 2
O Rückgabewert mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 10
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
T Array als Rückgabewert einer Methode Java Basics - Anfänger-Themen 3
C Thread mit Rückgabewert? Java Basics - Anfänger-Themen 4
S Rückgabewert einer Instanzvariable Java Basics - Anfänger-Themen 2
K rückgabewert combobox Java Basics - Anfänger-Themen 15
M Methoden mit Rückgabewert Java Basics - Anfänger-Themen 4
B Vector<Point> als Rückgabewert Java Basics - Anfänger-Themen 23
C Null als Rückgabewert Java Basics - Anfänger-Themen 7
O String[] Array als Rückgabewert Java Basics - Anfänger-Themen 7
G setValueAt Rückgabewert verarbeiten? Java Basics - Anfänger-Themen 12
P Methode mit 2 unterschiedlichem Rückgabewert Java Basics - Anfänger-Themen 10
L Prozess rückgabewert? Java Basics - Anfänger-Themen 5
I "Rückgabewert" von EditorFenster Java Basics - Anfänger-Themen 6
A ActionPerformed Methode ohne Rückgabewert Java Basics - Anfänger-Themen 12
G Rückgabewert bei JInternalFrame ? Java Basics - Anfänger-Themen 2
M Rückgabewert Java Basics - Anfänger-Themen 4
L Rückgabewert Java Basics - Anfänger-Themen 7
K Frage zu Rückgabewert List und ArrayList Java Basics - Anfänger-Themen 6
D Methode aufrufen funktioniert nicht ganz - Rückgabewert Bool Java Basics - Anfänger-Themen 12
M Rückgabewert einer Methode Java Basics - Anfänger-Themen 6
P Array als Rückgabewert Java Basics - Anfänger-Themen 4
halla Array an Methode übergeben / Array als Rückgabewert Java Basics - Anfänger-Themen 2
L Rückgabewert in Konstruktor? Java Basics - Anfänger-Themen 4
R Problem mit Rückgabewert Java Basics - Anfänger-Themen 5
M Null-Rückgabewert von Methoden = sauberes programmieren? Java Basics - Anfänger-Themen 3
D Rückgabewert einer Methode Java Basics - Anfänger-Themen 25
M JFileChooser Rückgabewert Java Basics - Anfänger-Themen 2
Niki_Tesla Rückgabewert Java Basics - Anfänger-Themen 2
A Hashtable als Rückgabewert Java Basics - Anfänger-Themen 3
A Methode mit Rückgabewert Java Basics - Anfänger-Themen 3
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
S String ändert sich nicht Java Basics - Anfänger-Themen 2
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
E statische Variable ändert sich Java Basics - Anfänger-Themen 7
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
H Variable ändert wert und ich weiß nicht warum Java Basics - Anfänger-Themen 3
Y Junit Test - Testwert ändert sich Java Basics - Anfänger-Themen 12
A Bild ändert Größe des Gridbag Layouts Java Basics - Anfänger-Themen 4
C Label ändert ändert sich nicht Java Basics - Anfänger-Themen 4
J JTable aktualisieren wenn TableModel sich ändert Java Basics - Anfänger-Themen 6
R Foreground Color ändert sich nicht Java Basics - Anfänger-Themen 5
D Was machen wenn Datenstruktur sich ständig ändert? Java Basics - Anfänger-Themen 10
G klicken in den Browser ändert Applett-Inhalt Java Basics - Anfänger-Themen 5
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben