LinkedList: Probleme beim Auslesen

Attila2

Neues Mitglied
Hallo, ich habe ein Problem beim Auslesen von Objekte (hier Objekt LL) aus einer LinkedList.

Das Problem liegt in der Methode "Verzweigen" der Klasse "LLProblem":
Ich stelle zwei Objekte LL in die LinkedList llliste ein. Jedes Objekt LL enthält eine Matrix: das erste Objekt, das ich einstelle, eine Matrix mit Inhalt "A", das zweite Objekt enthält eine andere Matrix nämlich mit dem Inhalt "B". Danach lese ich die LinkedList llliste wieder aus, zweimal mit dem
removeLast-command. Ich erhalte aber immer nur die zuletzt eingestelle Matrix mit dem Inhalt "B",
aber nie wieder die zuerst eingestellte Matrix mit dem Inhalt "A".

Ich habe den Code aus einer größeren Programmstruktur herausgebrochen, um den
Fokus auf das Problem zu lenken. Die Struktur muss schon so bleiben und die Objekte LL und VL
sind mit wesentlich mehr Daten angereichert.

Ich bitte um Hilfe und bedanke mich im Voaus.



Java:
import java.util.Collections;
import java.util.LinkedList;

public class LLProblemMain 
{
	
	public static LinkedList<VL> vlliste = new LinkedList<VL>();
	public static LinkedList<LL> llliste = new LinkedList<LL>(); 
	
	public static void main(String[] args) 
	{
		   try                           { lltest1();           }
		   catch (ArithmeticException e) { e.printStackTrace(); }
		   StdOut.println("--------------------------------");                     
	}
		    
		    
	  public static void lltest(double[][] A) {
		  int countElements = 0;
		  int index = 0;
		  
    	  VL vl_temp = new VL(A);
	      
          vlliste.add(vl_temp); 
	        
          vl_temp = null;
          countElements = vlliste.size();
          System.out.println("countElements " + countElements); 
                    
          while (vlliste.size() > 0) 
          {
//        	  gets and remove lastElement
        	  vl_temp = vlliste.removeLast();
      
//        	  vl_temp = vlliste.remove((vlliste.size() - 1));
          
//        	  zeigt ausgewählten VL-Objekt   
        	  System.out.println("ausgewaehltes VL-Objekt");
        	  vl_temp.showMatrix();                                 
	      
//            Verzweigen
	       	  StdOut.println("=============================================>>>>>>>> Verzweigen-Aufruf");
	       	  LLProblem.Verzweigen(vl_temp); 
	  
	       	  vl_temp = null;
  	       }
	      countElements = vlliste.size();   
          }	  
          
	   
	  // max 1x + 1y + 1z --->  max     eingefuehrt in das tableau mit umgekehrten Vorzeichen
	     public static void lltest1() {
	         double[][] A = {
	             { -1,  1,  0 },
	             {  1,  4,  0 },
	             {  2,  1,  0 },
	             {  3, -4,  0 },
	             {  0,  0,  1 },
	         };
	         
	        
	         System.out.println("-------------------------- Test1 -----------------------------------------");
	         lltest(A);
	     }


}






import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

import ilp.LL;

public class LLProblem
{
		    
	  public static void Verzweigen (VL vl) {
		  int countElements = 0;
		  
    	  double Atemp [] []; 
    	  
          
          double[][] a;   // erweitertes Tableaux
          int M;          // number of constraints
          int N;          // number of original variables
        
          LL   ll_links = new LL();
          LL   ll_rechts = new LL();
          LL   ll_temp = new LL();
         
 
          Atemp = vl.getA_Matrix();
  
          a =  new double[Atemp.length] [Atemp[0].length];
          
          for (int i = 0; i < a.length; i++)
              for (int j = 0; j < a[i].length; j++)
                  a[i][j] = Atemp [i][j];
                  
         
//        
          
          System.out.println("\t-------> erstes Objeckt in  die ll-Liste <---------"); 
             
         
          ll_links = null;
          ll_links  = new LL(a); 
          LLProblemMain.llliste.add(ll_links);
          System.out.println("ll_links:");  
          ll_links.showMatrix();
          
          System.out.println("\t");  
          
          
                                                                                
          System.out.println("\t-------> zweites Objekt in die ll-Liste <---------"); 
          
          
          for (int i = 0; i < a.length; i++)
              for (int j = 0; j < a[i].length; j++)
                  a[i][j] = 222.0;
          
          
          ll_rechts = null;
          ll_rechts = new LL(a); 
          LLProblemMain.llliste.add(ll_rechts); 
          System.out.println("ll_rechts:");  
          ll_links.showMatrix();
          
          
          System.out.println("LL-Listen-Groesse = " + LLProblemMain.llliste.size());  
          countElements = VILPMain.bilpliste.size();
          StdOut.println(VILPMain.bilpliste);
          
         
          
          System.out.println("countElements " + countElements); 
                    
          while (LLProblemMain.llliste.size() > 0) 
          {
// Block  Auswahl des letzten LL-Objktes aus der ll-Liste?           
        
        	  System.out.println("       ------------> Auswahl des letzten LL-Objktes aus der ll-Liste und entfernen      <------- "); 
        	  
        	  if ((LLProblemMain.llliste.size()) == 2) {
        		  System.out.println("------------> da erwarte ich die Matrix mit den 222er Elementen                     <------- ");
        	  }	  else {
        		  System.out.println("------------> und jetzt erwarte ich die erste Matrix mit den nicht-222er Elementen  <-------  ");
        		  System.out.println("------------> es kommt aber wieder die mit den 222er Elementen                      <-------  ");
        	  }
//       		  gets and remove lastElement
//        		 
        		  ll_temp = null;
        		  System.out.println("vor ll-Liste-Remove: " + LLProblemMain.llliste.size());
        		  System.out.println("Adressen der ll-Liste: " + LLProblemMain.llliste);
        		  ll_temp = LLProblemMain.llliste.removeLast(); 
//        		  ll_temp = LLProblemMain.llliste.remove((LLProblemMain.llliste.size() - 1));
        		  ll_temp.showMatrix();
        		  System.out.println("nach LL-Liste-Remove: " + LLProblemMain.llliste.size());
        		  System.out.println("Adressen der ll-Liste: " + LLProblemMain.llliste);
        		  
   
   /**     	  Atemp = ll_temp.getA_Matrix(); 
        	  
        	  for (int i = 0; i < Atemp.length; i++) {
        		   for (int j = 0; j < Atemp[i].length; j++) {
        		      System.out.print(Atemp[i][j] + " ");
        		   }
        		   System.out.println();
        		}                                              **/
     
	          

	         
	          countElements = LLProblemMain.llliste.size();       	// muss max 1 sein
          }                               						    // end While
	      countElements = LLProblemMain.llliste.size();           	// muss hier null sein
	      StdOut.println("vorzeitiges Ende - gewollter Abbruch ---   Objekte in der LL-Liste = " + countElements);
	      System.exit(0);
       }	                              						// end Branch    
 }							// End Branching








public class VL   {
	double[][] A; 		// Koeffizienten
	
	
// Default Konstruktor	
	
	VL() {
	}

// Konstruktor 1	
	
	VL(double[][] A) {

		this.A = A;
		
	}


	
	public void setA_Matrix(double[][] A) {
		this.A = A;
	}

	public double[][] getA_Matrix() {
		return A;
	}

	
	
	  // print tableaux
    public void showMatrix() {
     
        for (int i = 0; i < A.length; i++) {
        	   for (int j = 0; j < A[i].length; j++) {
        	      System.out.print(A[i][j] + " ");
        	   }
        	   System.out.println();
        	}
      
                                      
   }

}








public class LL   {
	double[][] A; 		// Koeffizienten
	
	
// Default Konstruktor	
	
	LL() {
	}

// Konstruktor 1	
	
	LL(double[][] A) {

		this.A = A;
	}
	
	public void setA_Matrix(double[][] A) {
		this.A = A;
	}

	public double[][] getA_Matrix() {
		return A;
	}
	
	  // print tableaux
    public void showMatrix() {
     
        for (int i = 0; i < A.length; i++) {
        	   for (int j = 0; j < A[i].length; j++) {
        	      System.out.print(A[i][j] + " ");
        	   }
        	   System.out.println();
        	}
                         
   }

}
 

Flown

Administrator
Mitarbeiter
Dein Problem lässt sich auf das hier herunterbrechen:

Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test {
  public static void main(String... args) {
    List<int[][]> test = new ArrayList<>();
    test.add(new int[][] { { 1, 2 }, { 3, 4 } });
    int[][] b = { { 2, 2 }, { 2, 2 } };
    test.add(b);
    for (int i = 0; i < b.length; i++) {
      for (int j = 0; j < b[i].length; j++) {
        b[i][j]++;
      }
    }
    test.add(b);
    for (int[][] arr : test) {
      System.out.println(Arrays.deepToString(arr));
    }
  }
}

Arrays sind in Java Objekte und können somit, sobald du die Referenz hast, verändert werden. Das heißt für dich jetzt, dass du sie kopieren musst.
 

Attila2

Neues Mitglied
Hallo Flown,

Dank Deiner Hilfe habe ich meinen (Anfänger-)Fehler erkannt. Bei der zweiten Aufbereitung hatte die a-Matrix die
Adresse auf die indirekt der Zeiger an der ersten Stelle (0) der linkedList hindeutet. Ich habe somit den Inhalt
des Objektes, auf die die erste Stelle der linkedList hindeutet, geändert. Diesen Zeiger der a-Matrix muss man vor
der zweiten Aufbereitung kappen mit den Befehlen: a = null; a = new double[Atemp.length] [Atemp[0].length];
nach der Zeile 125 in meinem Code. Dann funktioniert es. Die zeite "a-Matrix" hat jetzt nichts mehr mit dem ersten Objekt, das ich in die linkedList gestellt habe, zu tun.

Herzlichen Dank Flown, ich war schon ganz verzweifelt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
R Collections Probleme mit contains()-Methode [LinkedList] Java Basics - Anfänger-Themen 5
D Probleme mit LinkedList Java Basics - Anfänger-Themen 6
G probleme bei LinkedList Java Basics - Anfänger-Themen 19
V Probleme mit LinkedList Java Basics - Anfänger-Themen 3
A LinkedList implementieren Java Basics - Anfänger-Themen 32
M Wie kann ich den Index i von einer LinkedList überprüfen? Java Basics - Anfänger-Themen 36
Düsseldorf2002 Datentypen Verschachtelte LinkedList Java Basics - Anfänger-Themen 5
Düsseldorf2002 Datentypen Zwei dimensionale LinkedList Java Basics - Anfänger-Themen 8
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
G Java LinkedList Java Basics - Anfänger-Themen 6
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
S Mit einer LinkedList vorwärts und rückwärts iterieren Java Basics - Anfänger-Themen 6
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
G Java LinkedList Java Basics - Anfänger-Themen 3
B LinkedList add-Methode Java Basics - Anfänger-Themen 10
F Windows in LinkedList registrieren Java Basics - Anfänger-Themen 3
A Hilfe, LinkedList Java Basics - Anfänger-Themen 2
H Knoten-Reihenfolge einer LinkedList invertieren Java Basics - Anfänger-Themen 11
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
O Hashmap, ArrayList, LinkedList Java Basics - Anfänger-Themen 7
P Quellcode LinkedList Java Basics - Anfänger-Themen 2
F Collection Aufgabe mit LinkedList Java Basics - Anfänger-Themen 3
N Hilfe bei verknüpfter Liste - Linkedlist Java Basics - Anfänger-Themen 11
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
C ArrayList vs LinkedList vs ? Java Basics - Anfänger-Themen 15
C LinkedList vs. ArrayList Java Basics - Anfänger-Themen 15
O LinkedList zu ArrayList Java Basics - Anfänger-Themen 4
M LinkedList elemente löschen Java Basics - Anfänger-Themen 2
L Problem mit LinkedList Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
P Hashmap anstatt LinkedList? Java Basics - Anfänger-Themen 6
TechGirl LinkedList - kurze allgemeine Frage Java Basics - Anfänger-Themen 17
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
L LinkedList Comparable < > MEHRFACH implementieren? Java Basics - Anfänger-Themen 3
S LinkedList mit Input vergleichen. Java Basics - Anfänger-Themen 5
C Bei der LinkedList auf Palindrom überprüfen Java Basics - Anfänger-Themen 4
F Element aus LinkedList löschen Java Basics - Anfänger-Themen 3
T Collections LinkedList<LinkedList<T>> - Implementierung Java Basics - Anfänger-Themen 10
S Jfreechart mit LinkedList befüllen Java Basics - Anfänger-Themen 1
S JTable LinkedList <Objekt> befüllen Java Basics - Anfänger-Themen 1
K LinkedList aus Arrays ( Lösungsraum Mastermind ) Java Basics - Anfänger-Themen 5
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
Farbenfroh int in LinkedList einsortieren Java Basics - Anfänger-Themen 4
W Klassen LinkedList funktioniert nicht Java Basics - Anfänger-Themen 6
X LinkedList - Index eines Objekts Java Basics - Anfänger-Themen 2
S Strings in eine LinkedList schreiben und auslesen? Java Basics - Anfänger-Themen 4
D Sortieren von int Werten von Objekten in einer LinkedList, kann nicht auf int Werte zugreifen Java Basics - Anfänger-Themen 3
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
T Datentypen gleichmäßiges mischen von 2 LinkedList Java Basics - Anfänger-Themen 3
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
J Datentypen Array von einer LinkedList Java Basics - Anfänger-Themen 5
R LinkedList Java Basics - Anfänger-Themen 8
J Per I/O Streams in LinkedList oder ArrayList schreiben/lesen Java Basics - Anfänger-Themen 6
B LinkedList remove Java Basics - Anfänger-Themen 5
J statische Methoden auf eine LinkedList initialisieren? Java Basics - Anfänger-Themen 5
G Hausaufgabe mit LinkedList und LinkedListStack verstehen Java Basics - Anfänger-Themen 6
N LinkedList-checkForComodification Java Basics - Anfänger-Themen 11
N LinkedList Java Basics - Anfänger-Themen 17
P LinkedList sortieren Java Basics - Anfänger-Themen 20
P LinkedList - Stack ... grundlegende Frage Java Basics - Anfänger-Themen 5
Z Erste Schritte LinkedList Werte abfragen und vergleichen Java Basics - Anfänger-Themen 3
B SUCHE: Threadsafe LinkedList Java Basics - Anfänger-Themen 10
Binary.Coder Wie linkedlist für Djikstra nutzen? Java Basics - Anfänger-Themen 6
M Arrays in LinkedList Java Basics - Anfänger-Themen 4
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
M LinkedList aktuelle position Java Basics - Anfänger-Themen 3
G Frage zu LinkedList Java Basics - Anfänger-Themen 15
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
I LinkedLIst / ArrayList Konstruktor Java Basics - Anfänger-Themen 4
B Collections RandomAccessfile & Linkedlist Java Basics - Anfänger-Themen 4
S Speichermangel ArrayList/LinkedList Java Basics - Anfänger-Themen 3
V LinkedList size() Java Basics - Anfänger-Themen 2
darekkay Datentypen HashSet bzw. LinkedList mit Werten initialisieren Java Basics - Anfänger-Themen 3
L LinkedList vorgänger Knoten zurück geben Java Basics - Anfänger-Themen 4
S LinkedList indexOf() - geht des irgendwie schneller? Java Basics - Anfänger-Themen 23
S LinkedList<String[]> filtern und sortieren Java Basics - Anfänger-Themen 9
W LinkedList Java Basics - Anfänger-Themen 12
S Frage zum speichern der Daten in einer LinkedList Java Basics - Anfänger-Themen 2
D Fenster in LinkedList verwalten Java Basics - Anfänger-Themen 2
C HashMap mit LinkedList Java Basics - Anfänger-Themen 5
S Datentypen LinkedList Konstruktor, add Alternative Java Basics - Anfänger-Themen 2
truesoul LinkedList Problem Java Basics - Anfänger-Themen 6
M Java Generics LinkedList Java Basics - Anfänger-Themen 5
H LinkedList Element an Stelle x ausgeben? Java Basics - Anfänger-Themen 5
D LinkedList aufrufe Java Basics - Anfänger-Themen 3
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
S Serialized LinkedList aus Datei Laden Java Basics - Anfänger-Themen 15
S LinkedList Java Basics - Anfänger-Themen 2
M LinkedList in anderer Klasse nutzen Java Basics - Anfänger-Themen 4
L LinkedList sortieren Java Basics - Anfänger-Themen 5
L heap space, LinkedList umspeichern Java Basics - Anfänger-Themen 15
H LinkedList mit Strings Exception Java Basics - Anfänger-Themen 3
S IndexOutofBoundsException bei linkedlist Java Basics - Anfänger-Themen 5
B Fehlersuche bei LinkedList Java Basics - Anfänger-Themen 3
B LinkedList - Berechnung des Produkts Java Basics - Anfänger-Themen 6
S Sortierte LinkedList nach Variablen durchsuchen und nicht nach INDEX Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben