JAXB / Listen durchlaufen

Fawkes

Mitglied
Hallo,
ich hänge momentan an einem kleinen Problem.
Zur Situation, ich habe einen XML-Baum (verwende JAXB) und möchte diesen nun durchlaufen um einen Weg zu finden. (Hatte dazu einen anderen Thread: http://www.java-forum.org/softwareentwicklung/109545-weg-zwischen-2-knoten-xml-jaxb.html)

Ich habe verschiedene Objekte "Switch", jedes dieser Objekte hat eine Liste von Ports, an denen andere Switches hängen. Ich habe die Struktur mal beispielhaft skizziert:

baumWeg.png


Mein Problem ist es jetzt, das Suchen vom Weg passend zu implementieren. Ich muss den Weg von 2 Knotenpunkten zur Wurzel bestimmen. D.h. ich muss zunächst den Baum/die Listen durchlaufen um das Element zu finden. Dann muss ich das Vaterelement von diesem herausfinden, dann das Vaterelement vom Vaterelement usw.

Die genaue Struktur wäre:
Eine Liste Ports, jeder Port hat ein Element Kabel, jedes Element Kabel hat ein Element Device oder Switch.
Ich starte also mit meiner Liste von Ports(rootSwitchPorts) vom Rootelement. Diese durchlaufe ich und untersuche für jeden Port u in rootSwitchPorts zunächst ob ein Switch oder ein Device enthalten sind und falls Device ob u.getCable().getDevice().getID() == gesuchte ID ist. Bis hierhin klappt dann auch alles. Das Problem ist jetzt das Zusammensetzen/bzw. das Herausfinden der Vaterelemente.

Ist u.getCable().getDevice().getID() == sourceID soll dieses also mein erstes Element in der Liste werden, danach muss ich die ID des Elements herausfinden in dessen Liste u ich mich gerade befinde.
Beispielhaft nochmal an der Skizze von vorhin (Wobei hier dann nur der Weg von 5 zu 1 gesucht wird):
baumWeg2.png


Und mal ein kleiner Ansatz von mir (Wobei hier wie gesagt bisher nur die Suche nach dem Element mit entsprechender sourceID richtig klappt):
Java:
	public List<Integer> createPath(List<PortType> rootSwitchPorts, int sourceID){
		List<Integer> tempSwitchPorts = new ArrayList<Integer>();
		for(PortType u : rootSwitchPorts){ //currentSwitch = rootSwitch
			//System.out.println(u.getCable().getSwitch().getID());
			if(u.getCable().getDevice() != null)
			if(u.getCable().getDevice().getID() == sourceID)
			{
				//System.out.println(u.getCable().getDevice().getID());
				tempSwitchPorts.add(u.getCable().getDevice().getID());
				return tempSwitchPorts;
			}
			if(u.getCable().getSwitch() != null)
			{
			tempSwitchPorts = createPath(u.getCable().getSwitch().getPort(), sourceID);
			if(tempSwitchPorts.get(0) != null)
				if(tempSwitchPorts.get(0) == sourceID)
					tempSwitchPorts.add(u.getCable().getSwitch().getID());
			}

		}
		tempSwitchPorts.add(-1);
		return tempSwitchPorts;
	}

Und hier noch das entsprechende XML Schema:
[XML]<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Switch" type="SwitchType"/>
<xsd:element name="Device" type="DeviceType"/>

<xsd:complexType name="SwitchType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Delay" type="xsd:int"/>
<xsd:element name="Jitter" type="xsd:int"/>
<xsd:element name="Port" type="PortType" minOccurs="3" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="ID" type="xsd:int"/>
<xsd:attribute name="IncomePortNumber" type="xsd:int"/>
</xsd:complexType>

<xsd:complexType name="PortType">
<xsd:sequence>
<xsd:element name="Cable" type="CableType"/>
</xsd:sequence>
<xsd:attribute name="PortNumber" type="xsd:int"/>
</xsd:complexType>

<xsd:complexType name="CableType">
<xsd:sequence>
<xsd:element name="Delay" type="xsd:int"/>
<xsd:element ref="Switch" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="Device" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:complexType>

<xsd:complexType name="DeviceType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Delay" type="xsd:int"/>
</xsd:sequence>
<xsd:attribute name="ID" type="xsd:int"/>
</xsd:complexType>

</xsd:schema>[/XML]
Könnte mir da jemand einen Tipp geben wie ich vorgehen könnte?
Grüße
Fawkes
 

Wildcard

Top Contributor
Nimm doch EMF statt JaxB. EMF Objekte kennen ihren Parent von Haus aus und EMF Modelle bieten unter anderem auch direkt einen Tree Iterator um den Baum Top Down zu durchlaufen (auch wenn du das dann eigentlich gar nicht mehr brauchst).
 

Fawkes

Mitglied
Danke für den Tipp mit EMF, sieht auf den ersten Blick interessant aus.
Allerdings würde ich hier lieber bei JAXB bleiben, da das restliche Projekt ganz darauf basiert. Wen sich das jetzt mit JAXB aber als nicht machbar bzw. nur sehr umständlich zu realisieren herausstellt, werde ich mir EMF doch nochmal genauer ansehen.
 

Wildcard

Top Contributor
Machbar ist es natürlich, allerdings wird diese Top Down Suchansatz extrem teuer wenn dein Modell größer wird.
Da EMF generell um Klassen besser als JAXB ist, würde ich es mir schon überlegen...
Falls du dennoch bei JAXB bleibst:
Wenn du häufiger solcher Operationen durchführen musst wird es wesentlich billiger wenn du eine Referenz auf den Parent in deine Klassen einfügst und dann einmal initial über das Modell läufst und den Parent initialisierst.
Dieses initialisieren ist nur wenig teuerer als die Top Down Suche und dafür sparst du bei jeder weiteren Suche sehr viel Rechenzeit.
 

Fawkes

Mitglied
Hm, da hast du wohl recht. Dann werde ich morgen mal versuchen, das ganze auf EMF umzustellen.
Hast du zufällig eine (gute) Referenz, die gerade das Thema xsd->EMF sowie umgekehrt Java->xml behandelt?
Und was noch wichtig wäre: Kann ich per EMF einfach auf bestimmte Elemente in XML-Files zugreifen(z.B. durch ID Attribut) und deren Elemente auslesen?
Ich muss auch per Javacode auf die Elemente der XML-Dateien zugreifen können(z.B. um von jedem Objekt das auf einem Weg zwischen 2 Knoten liegt die Attribute auszulesen)
 

Wildcard

Top Contributor
EMF ist kein XML Parser, oder eine Art Dom4J. EMF ist ein Modellierungswerkzeug das unter anderem XML Binding ähnlich wie JAXB bietet, allerdings wesentlich Feature reicher ist.
Um mit XML (XML Binding ist wie gesagt nur ein Teilaspekt von EMF, aber vermutlich der, der dich zZ am meisten interessiert) loszulegen machst du folgendes:
-Eclipse herunterladen falls nicht schon geschehen
-Über den Install Software Dialog Eclipse Modeling Framework SDK und XML Schema Infoset SDK installieren
-Projekt erstellen
-Rechtsklick im Project -> new -> other -> EMF Model -> XML Schema auswählen -> Finish
Danach öffnet sich ein Editor. Mit Rechtsklick -> Generate Model Code werden dann Java Interfaces und Klassen erzeugt.

Um zu verstehen wie man nun XML Dateien lädt und speichert solltest du am besten auch den Test Code generieren lassen. Dadurch wird ein neues Projekt erstellt das Unit Test Stubs und eine Example Klasse enthält die zeigt wie man mit dem Modell arbeitet.

Da es dir ja um den Parent geht:
Jede der generierten Klassen hat eine eContainer() Methode über die du an den Parent des Objekts kommst.
Wenn du das Objekt von einem Knoten im Baum zu einem anderen bewegst, wird die Referenz auf den Parent übrigens automatisch aktualisiert, dein Modell bleibt immer in sich konsistent.
Da sich eContainer() nicht so schön liest wie zB getParent() kann man auch explizit mit 3 Klicks eine Container Referenz modellieren um die API aufzuhübschen, aber besser nicht zu viel auf einmal...
Du kannst dir auch mal den Edit und Editor Code generieren lassen. Damit werden zwei neue Projekte angelegt (Eclipse Plugins) die einen sofort lauffähigen Baumeditor für dein Modell enthalten.
Der Editor kann die Dateien einlesen, anzeigen, manipulieren, speicher, undo, redo,...
Ist ganz nützlich um zB ein paar Beispieldateien zu erstellen.
 

Fawkes

Mitglied
Wow, vielen Dank für die ausführliche Antwort. Ich werde mich dann morgen in die Sache einarbeiten, hört sich auf jeden Fall sehr gut an und scheint von den Funktionalitäten die geboten werden JAXB um einiges voraus zu sein.
 

Wildcard

Top Contributor
Ich habe das mal kurz für dein Schema getan.
Die EClasses sollte man wohl umbennen (oder die Types umbennen) um das ...Type wegzubekommen.
Ausserdem scheinst du die numerischen IDs als Referenzen auf andere Objekte zu verwenden?
Das lässt sich in EMF schöner als echte Referenz modellieren, dann geht zB sowas:
Java:
Port port = switch1.getIncomingPort();
anstatt
Java:
int number = switch1.getIncomingPortNumber();
Port port = lookup(number);
Insbesondere für bidirektionale Relationen ist EMF hervorragend geeignet, da es automatisch beide Seiten einer beziehung konsistent hält. Als Beispiel:
Ein Cable referenziert ein Device und einen Switch. In EMF kannst du automatisch dafür sorgen das ein Switch und ein Device auch alle Cables kennen die sie referenzieren.

Aber nun zum Beispiel, ich habe wie gesagt dein Schema importiert und daraus Klassen erzeugt (einen Target Namespace solltest du noch vergeben).
So sieht der Code aus um das Modell zu verwenden:

Java:
	public static void main(String[] args) throws IOException {
		// Create a resource set to hold the resources.
		//
		ResourceSet resourceSet = new ResourceSetImpl();
		
		// Register the appropriate resource factory to handle all file extensions.
		//
		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
			(Resource.Factory.Registry.DEFAULT_EXTENSION, 
			 new SwitchmodelResourceFactoryImpl());

		// Register the package to ensure it is available during loading.
		//
		resourceSet.getPackageRegistry().put
			(SwitchmodelPackage.eNS_URI, 
					SwitchmodelPackage.eINSTANCE);
        
		Resource resource = resourceSet.createResource(URI.createFileURI("example.model"));
		SwitchmodelFactory factory = SwitchmodelFactory.eINSTANCE;
		SwitchType switch1 = factory.createSwitchType();
		switch1.setName("Switch1");
		
		PortType port1 = factory.createPortType();
		port1.setPortNumber(4);
		switch1.getPort().add(port1);
		
		CableType cable = factory.createCableType();
		cable.setName("MyCable");
		cable.setDelay(2);
		
		port1.setCable(cable);
		
		DeviceType device = factory.createDeviceType();
		device.setName("Device1");
		device.setID(4);
		cable.setDevice(device);


		resource.getContents().add(switch1);
		resource.save(System.out, null);
      }
Und das kommt dabei raus:
[XML]<?xml version="1.0" encoding="ASCII"?>
<SwitchType xmlns="http://example.org/switchmodel">
<Name>Switch1</Name>
<Port PortNumber="4">
<Cable Name="MyCable">
<Delay>2</Delay>
<Device ID="4">
<Name>Device1</Name>
</Device>
</Cable>
</Port>
</SwitchType>
[/XML]
 
Zuletzt bearbeitet:

Fawkes

Mitglied
Ich habe gerade mal alles soweit gemacht wie du bereits geschrieben hattest und dein Beispiel ausprobiert, klappt super :) Werde mich dann morgen genauer einarbeiten. Auf jeden Fall schonmal vielen Dank für die tolle Hilfe.

Noch eine Frage: Wie ist das bei EMF den mit dem einlesen von XML Dateien, gibt es auch etwas in der Art von unmarshal in JAXB?

Und dann noch etwas zu Eclipse: Habe gerade versucht per Generate Edit sowie Generate Editor den Baumeditor herzubekommen. Die 2 Projekte (edit/editor) werden auch erstellt, nur das ausführen klappt nicht. Soweit ich das verstanden habe, sollen diese als Eclipse Plugins laufen und man soll sie wohl als Eclipse Application oder Runtime Workbench ausführen, beides ist bei mir aber nicht vorhanden(lediglich Java Application, Java Applet, jUnit Test und Ant Build. Auch die Plugineinstellungen unter Window->Preferences finde ich bei mir nicht. Muss man da noch etwas zusätzlich installieren? (Habe bisher Eclipse 3.5(Galileo) for Java Developers und das EMF SDK 2.5.0 (EMF+XSD))
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Noch eine Frage: Wie ist das bei EMF den mit dem einlesen von XML Dateien, gibt es auch etwas in der Art von unmarshal in JAXB?
Auf obiges Beispiel gemünzt:

Java:
Resource resource = resourceSet.getResource(URI.createFileURI("example.model"),true);
SwitchType switch1 = (SwitchType)resource.getContents().get(0);

Zum Ausführen des Editors:
Öffne mal den Dialog mit den Launch Configurations. Dort sollte es eine Kategories 'Eclipse Applications' geben.
Anklicken, dann auf 'new' und dann 'run'.
 

Fawkes

Mitglied
So, ich habe jetzt mal alles im Projekt soweit umgestellt auf EMF, komplett neu erstellen funktioniert soweit auch, aber beim einlesen/bearbeiten einer XML Datei gibt es noch Probleme.

Habe versucht das nach deinem Beispiel zu machen:
Java:
				Resource resource = resourceSet.getResource(URI.createFileURI(filename+".xml"),true);
				SwitchType rootSwitch = (SwitchType)resource.getContents().get(0);
Aber er bringt mir:
org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'SwitchType' not found.

In der XML, die ich hier auslesen will, ist der "RootSwitch" vorhanden:
[XML]<?xml version="1.0" encoding="ASCII"?>
<SwitchType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="###/NetworkSchema.xsd" ID="1" IncomePortNumber="0">
<Name>Switch_1</Name>
<Delay>4</Delay>
<Jitter>2</Jitter>
</SwitchType>
[/XML]


Zu der Sache mit dem Editor:
Habe eben nochmal nachgesehen, aber auch dort gibt es keine Kategorie Eclipse Applications:
runConfig.PNG

launchConfig.PNG
 

Wildcard

Top Contributor
Das Root Element muss doch Switch heißen und nicht SwitchType?
Hast du vorher auch diese Zeile eingetragen?
Java:
        resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
            (Resource.Factory.Registry.DEFAULT_EXTENSION, 
             new SwitchmodelResourceFactoryImpl());
Das sagt dem ResourceSet das es für jede Dateiendung deine Switchmodel Resource Factory verwenden soll.

Zur Sache mit dem Editor:
Ok, dann fehlt dir die Plugin Development Environment (PDE). Musst du nachinstallieren.
 
Zuletzt bearbeitet:

Fawkes

Mitglied
Ja, das ist soweit eingetragen:

Java:
	        ResourceSet resourceSet = new ResourceSetImpl();
	        resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
	            (Resource.Factory.Registry.DEFAULT_EXTENSION, 
	             new NetworkSchemaResourceFactoryImpl());

	        resourceSet.getPackageRegistry().put
	            (NetworkSchemaPackage.eNS_URI, 
	            		NetworkSchemaPackage.eINSTANCE);
	        NetworkSchemaFactory factory = NetworkSchemaFactory.eINSTANCE;

Hm, ja das mit dem SwitchType als Root ist mir garnicht aufgefallen, eigentlich sollte das Switch sein, generiert wird es genau wie Cable usw. bei denen die Benennung passt.
 

Wildcard

Top Contributor
Ja, ich sehe gerade das es bei mir auch zu SwitchType wurde. Ich hätte den Switch wohl in den Document Root einpacken müssen...
Ich muss jetzt leider weg, aber ich denke ich habe morgen kurz Zeit mir das nochmal anzusehen.
 

Fawkes

Mitglied
Ah super, danke für den Tipp mit dem Verpacken im Document Root, das wars. Funktioniert jetzt alles soweit, auch das auslesen :) Werde mein Projekt jetzt voll soweit anpassen dass es auf dem JAXB Stand ist und dann mal versuchen das eigentliche Problem mit der Wegfindung zu lösen.

Nochmal Danke für die Hilfe.
 

Fawkes

Mitglied
So, jetzt ist soweit alles auf dem JAXB Stand und auch das mit dem Parent herausbekommen funktioniert.
Jetzt aber nochmal eine kurze Frage dazu: Gibt es eine Möglichkeit über EMF herauszubekommen, wieviele Parentobjekte ein Objekt insgesamt hat? (Sprich, Objekt A hat als Parent Objekt B, welches C als Parent hat usw.)
 

Wildcard

Top Contributor
Ah super, danke für den Tipp mit dem Verpacken im Document Root, das wars.
Ah, du hast es schon hinbekommen, umso besser.
Gibt es eine Möglichkeit über EMF herauszubekommen, wieviele Parentobjekte ein Objekt insgesamt hat?
Du möchtest also quasi wissen auf welcher Hierarchiestufe sich ein Objekt befindet?
Das ist nicht schwierig. Ich würde zunächst mal anfangen eine Abstrakte EClass in deinem ecore anzulegen von dem du alle anderen erben lässt (ESuperTypes). Ich nenne sie jetzt mal für das Beispiel 'BaseType'.
In dieser Überklasse legst du nun eine EOpperation an. Ich nenne sie mal 'getHierarchyLevel'. Der EType (Rückgabewert) ist entweder einfach ein int (EInt), oder eine Liste die alle Ancestors des Knoten enthält, je nachdem was praktischer für dich ist.
Jetzt generierst du neu und hast jetzt in BaseType einen Methoden Stub 'getHierarchyLevel'. Dort ersetzt du in der Java Doc das @generated durch @generated NOT damit der Generator deine Implementierung in Zukunft in Ruhe lässt. Die Implementierung sieht dann zB so aus:

Java:
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated NOT
	 */
	public int getHierarchyLevel() {
		int level = 0;
		EObject parent = this;
		while(parent!=null && !(parent instanceof DocumentRoot))
		{
			level++;
			parent = parent.eContainer();
		}
		return level;
	}

Benutzen kannst du die Methode dann einfach so:
Java:
System.out.println(device.getHierarchyLevel());

Übrigens, wenn du jetzt den Test Code neu generierst legt dir EMF automatisch einen Unit Test für getHierarchyLevel an, da du diese Methode ja selbst implementieren musst und sie daher auch getestet werden sollte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JaxB und @XmlIDREF mit Interface Allgemeine Java-Themen 1
B JAXB zu DOM Allgemeine Java-Themen 8
F Xmlbeans und jaxb Allgemeine Java-Themen 0
I JAXB Problem Allgemeine Java-Themen 9
B XML File JAXB Allgemeine Java-Themen 0
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
M Jaxb und JPA: A cycle is detected in the object graph Allgemeine Java-Themen 5
M Java Objekte in XML mit JAXB Allgemeine Java-Themen 9
J JAXB Problem mit (zu großem?) Array Allgemeine Java-Themen 3
Shoox Hibernate / JAXB für Schnittstellen Allgemeine Java-Themen 4
alderwaran jaxb xsd schema, min/maxoccurs macht was? Allgemeine Java-Themen 7
N Speichern und laden in XML nicht via JAXB Allgemeine Java-Themen 4
G JAXB "no default constructor" Allgemeine Java-Themen 2
D Zwei Listen vergleichen Allgemeine Java-Themen 7
M doppelt verkettete Listen Allgemeine Java-Themen 2
L Listen Allgemeine Java-Themen 3
F Verständnisprobleme Aufgabenstellung Aktionsobjekte und generische Listen Allgemeine Java-Themen 1
E Listen in Java aneinanderfügen, subtrahieeren usw. Allgemeine Java-Themen 14
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
J Mit Referenzen verkettet Listen. Allgemeine Java-Themen 9
S Intressante Benchmark-Ergebnisse mit Listen. Weiss jemand wie man diese erklaeren kann? Allgemeine Java-Themen 15
D Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln. Allgemeine Java-Themen 10
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
P Listen sortieren Allgemeine Java-Themen 1
RalleYTN Collections Verständnisfrage zu Objektreferenzen in Listen Allgemeine Java-Themen 5
C Listen Allgemeine Java-Themen 1
M liste von listen anders ausgeben Allgemeine Java-Themen 1
W Sortierte Listen - Methode suchen Allgemeine Java-Themen 17
W Sortierte Listen mit Polymorphismus Allgemeine Java-Themen 6
J Rekursion oder Iteration - verkettete Listen Allgemeine Java-Themen 8
S Permutation und Listen Allgemeine Java-Themen 2
P Doppeltverkettete Listen + Text Allgemeine Java-Themen 5
A Java Projekt (Daten Eingeben, Speichern und in Listen Ausgeben) Allgemeine Java-Themen 6
T Drucken von variabel langen Listen (es kommen nur leere Seiten raus) Allgemeine Java-Themen 2
F Vergleich zweier Listen Allgemeine Java-Themen 4
T Synchronisation von Listen bei Zugriffen durch mehrere Prozesse Allgemeine Java-Themen 15
D variabler Listen name Allgemeine Java-Themen 3
V Drucken von Listen Allgemeine Java-Themen 6
S Doppelte Werte in Listen,Vectoren etc suchen Allgemeine Java-Themen 2
L verkettete Listen oder Arrays + Indexlisten effizienter? Allgemeine Java-Themen 3
M Addieren von Listen Allgemeine Java-Themen 2
F Objekte oder besser ID in Listen speichern? Allgemeine Java-Themen 2
S Mehrere Listen ineinander verschachteln Allgemeine Java-Themen 22
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
R Objektsynchronisierung zweier Listen?!?! Allgemeine Java-Themen 2
H Listen Allgemeine Java-Themen 5
G Datenstruktur: LISTEN Allgemeine Java-Themen 7
J Verschachtelte ListIteratoren um in zwei Listen hin und herzugehen Allgemeine Java-Themen 5
C Problem Methoden, Klassen, Listen Allgemeine Java-Themen 27
K Listen,Bäume,Mengen Allgemeine Java-Themen 3
S Hinzufügen von Elementen zu Listen Allgemeine Java-Themen 4
A zwei listen vergleichen und unterschiede anzeigen Allgemeine Java-Themen 3
D Listen / Datenstrukturen und ein blutiger Anfänger Allgemeine Java-Themen 7
J Zwei sortierte Listen zusammenfassen Allgemeine Java-Themen 8
T Problem mit Listen Allgemeine Java-Themen 8
B binarysearch bei listen mit klassen Allgemeine Java-Themen 4
F Problem mit Java Listen Allgemeine Java-Themen 4
D Listen von Generischen Typen inkl. Vererbung Allgemeine Java-Themen 2
C Listen in Java. Anehängter Code nicht ganz klar Allgemeine Java-Themen 19
L Doppelt Verkettete Listen Allgemeine Java-Themen 6
E Verkettete Listen Allgemeine Java-Themen 5
M objekt mit listen Allgemeine Java-Themen 5
G Domainen crawlen & Domainnamen listen -> LANGSAM! Allgemeine Java-Themen 19
M Listen Problem! Allgemeine Java-Themen 26
M doppelt verkettete Listen? Allgemeine Java-Themen 5
M Serialisierte listen ausgeben? Allgemeine Java-Themen 6
F 2 Varianten für synchronisierten Zugriff auf Listen Allgemeine Java-Themen 2
L Welche Collection ist die richtige ? Listen mergen Allgemeine Java-Themen 3
G Synchronisierte Listen. ein Graus Allgemeine Java-Themen 4
M Verknüpfung von Listen Allgemeine Java-Themen 3
S Frage zu ArrayList mit Listen Allgemeine Java-Themen 8
S Fragen zu 4 speziellen Listen Allgemeine Java-Themen 4
D Listen Allgemeine Java-Themen 4
M sortierte listen Allgemeine Java-Themen 5
I Doppelt verkette Listen Allgemeine Java-Themen 2
N neue Objektnamen durchlaufen Allgemeine Java-Themen 12
F Registry Ordner durchlaufen Allgemeine Java-Themen 1
P Durchlaufen einer Queue Allgemeine Java-Themen 9
B ArrayRecord durchlaufen Allgemeine Java-Themen 2
S Kombinationsmöglichkeiten durchlaufen Allgemeine Java-Themen 3
E Array durchlaufen Allgemeine Java-Themen 2
S Klassen in einer Schleife durchlaufen Allgemeine Java-Themen 11
G Array rekursiv durchlaufen Allgemeine Java-Themen 2
E Wie Arraylisten auf bestimmte Art durchlaufen? Allgemeine Java-Themen 3
C Geschachtelte For-Schleife: Äußere Schleife wird nur einmal durchlaufen!? Allgemeine Java-Themen 3
Dit_ Sortierte DatenListe am schnellsten durchlaufen Allgemeine Java-Themen 20
G Byte- List mit einem Iterator durchlaufen Allgemeine Java-Themen 5
M Verzeichnis durchlaufen und Dateien umbennen Allgemeine Java-Themen 2
M Enumeration Rückwärs durchlaufen Allgemeine Java-Themen 5
MQue Tidy HTML baum durchlaufen Allgemeine Java-Themen 5
P ArrayList durchlaufen Allgemeine Java-Themen 5
MQue HashMap durchlaufen Allgemeine Java-Themen 2
G Durchlaufen eines Arrays Allgemeine Java-Themen 4
E 20-mal ein programm durchlaufen lassen und Allgemeine Java-Themen 3
E Iterator durchlaufen? Allgemeine Java-Themen 8
B JUnit - Gleichen Test x-mal durchlaufen Allgemeine Java-Themen 2
M Funktion wird nicht durchlaufen. Allgemeine Java-Themen 13
K HashMap durchlaufen mit Iterator Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben