Collection ArrayList und mit erweitertem for iterieren

Status
Nicht offen für weitere Antworten.

Jay1980

Bekanntes Mitglied
Servus,

ich will eine Collection anlegen, diese dann mit int[]-Objekten füllen, immer wenn ein Element aber schon in der Collection ist, soll es nicht nochmal aufgenommen werden. Am Ende will ich meine Collection mit einem erweiterten for ablaufen und mir den Logging-String in einem JOptionPane anzeigen lassen. Leider zeigt es mir immer nur eine Zeile an, obwohl ich rund 5 Einträge erwarte. Mit Collections bin ich noch unerfahren, daher danke für die Rückmeldung.

Java:
// Container anlegen, hier ArrayList
		ArrayList<int[]> al = new ArrayList<int[]>( 50 );
		
		int[] currentPoint = new int[2];
		for (int lv = 0; lv < leftHullSortedByY.length; lv++ )
		{
			currentPoint[0]	= leftHullSortedByY[lv][0];
			currentPoint[1] = leftHullSortedByY[lv][1];
			
			if ( al.contains(currentPoint) == true )
			{
				continue; // Element ist schon drin
			}
			else
			{
				al.add(currentPoint);
			}
		}
		
		for ( int lv = 0; lv < rightHullSortedByY.length; lv++ )
		{
			currentPoint[0] = rightHullSortedByY[lv][0];
			currentPoint[1] = rightHullSortedByY[lv][1];
			
			if ( al.contains(currentPoint) == true )
			{
				continue;
			}
			else
			{
				al.add(currentPoint);
			}
		}
		
		String dbgstr = new String("Debugstring setConvexHullPoints\n");
		for ( int[] elem : al )
		{
			dbgstr += "P (" + elem[0] + ", " + elem[1] + ");\n";
		}
		dbgstr += "-----------------------\n";
		JOptionPane.showMessageDialog(null, dbgstr);
 

Ark

Top Contributor
Muss die Reihenfolge wählbar sein, oder kann sie auch "fest" ungeordnet oder "fest" sortiert sein? Dann solltest du zu einem Set (Menge) greifen. Da gibt es jedes Element garantiert nur einmal.

Ark
 

Jay1980

Bekanntes Mitglied
Okay, das heisst ich muss mich nicht drum kümmern falls ich doppelte Werte dem Set zufügen will. Ist es ein doppelter, dann wird er implizit nicht aufgenommen?
 

Ark

Top Contributor
Eine Klasse java.awt.Point gibt es bereits; vielleicht ist sie genau das, was du als Datenstruktur suchst. Und das nächste, was du wohl brauchst, ist ein java.util.TreeSet, genauer ein TreeSet<Point>. Da ein TreeSet vergleichbare Strukturen braucht, Points aber an sich nicht vergleichbar sind, musst du noch geeignete Comparators schreiben, die du dem TreeSet gibst. Dann sind deine Points im Set garantiert sortiert und kommen auch immer nur einmal vor.

War das jetzt verständlich und zielführend? Oder ist dieser Ansatz völlig ungeeignet?

Ark
 

Jay1980

Bekanntes Mitglied
Leider geht das auch nicht:
Ich nutze gerade ein HashSet und laufe die beiden Zuliefererarrays ab. Der Debugstring sagt mir dann, dass wenn ein Punkt aus dem ersten Zuliefererarray die gleichen Koordinaten hat, wie aus dem zweiten Zuliefererarray, dann ist dieser Punkt zweimal im HashSet. Code ist hier:
Java:
// Container anlegen, hier HashSet
		HashSet<int[]> hsc = new HashSet<int[]>();
		
		for ( int lv = 0; lv < leftHullSortedByY.length; lv++ )
		{
			hsc.add( leftHullSortedByY[lv]);
		}
		
		for ( int lv = 0; lv < rightHullSortedByY.length; lv++ )
		{
			hsc.add( rightHullSortedByY[lv] );
		}
		
		String dbgstr = new String("Debugstring setConvexHullPoints\n");
		for ( int[] elem : hsc )
		{
			dbgstr += "P (" + elem[0] + ", " + elem[1] + ");\n";
		}
		dbgstr += "-----------------------\n";
		JOptionPane.showMessageDialog(null, dbgstr);
 

Ark

Top Contributor
Bitte beachte die Restriktionen bei der Verwendung von HashSets, insbesondere die korrekte Implementierung von equals() und hashCode().

Aber ich glaube, das jetzt zu erklären oder irgendwie noch mit der Brechstange umzubiegen, wird zu schwierig, darum: Erklär' doch mal, was du erreichen willst. ;)

Ark
 

Jay1980

Bekanntes Mitglied
Bis jetzt weiss ich nicht von welchen Restriktionen du sprichst, Ark, aber das les ich gleich mal nach. Dann zu dem was ich erreichen will.

Ich habe in den Instanzvariablen zwei zweidimensionale Arrays, einmal rightHullPointsSortedByY und einmal leftHullPointsSortedByY. Die Arrays beinhalten Elemente die aus je einem integer-Paar bestehen. Das Paar gibt den x und y-Wert im Koordinatensystem an. Diese beiden Arrays will ich in der Collection bündeln.

Leider sind viele doppelte Werte in den beiden Ausgangsarrays und die muessen raus, dass in der Zielcollection jeder Wert nur einmal vorkommt.

Hoffe mein Vorhaben wurde klarer.
 

Ark

Top Contributor
Kurzum: Du hast zwei Mengen von Punkten und willst diese beiden Mengen vereinen. Richtig?
Java:
Set<Point> mengeA = blablabla;
Set<Point> mengeB = blablabla;
Set<Point> ergebnis = new HashSet<Point>(mengeA.size() + mengeB.size());
ergebnis.addAll(mengeA);
ergebnis.addAll(mengeB);
(Ungetestet usw.!)

Dann enthält ergebnis alle Punkte aus mengeA und alle Punkte aus mengeB. Die Methoden hashCode() und equals() sind bereits wie benötigt überschrieben. Anstatt mit int[] arbeitest du dann mit Point, ansonsten sollte alles gleich bleiben.

Ark
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
J Probleme mit Collection ArrayList Java Basics - Anfänger-Themen 2
J LinkedList, Collection, ArrayList, List. was denn bitte? Java Basics - Anfänger-Themen 6
K Verständnisfrage Collection, ArrayList und Referenzen Java Basics - Anfänger-Themen 4
Encera Garbage Collection Java Basics - Anfänger-Themen 9
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
M Collection.sort sortiert nicht Java Basics - Anfänger-Themen 7
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
E Interface List nicht als Collection an erkannt. Java Basics - Anfänger-Themen 14
F Collection Aufgabe mit LinkedList Java Basics - Anfänger-Themen 3
N Collections Werte aus .txt in einer Collection speichern Java Basics - Anfänger-Themen 11
M Collection Aufgabe Java Basics - Anfänger-Themen 22
Arif Collections Unkonstruiertes Objekt einer Collection hinzufügen Java Basics - Anfänger-Themen 2
W Collection-Problem Java Basics - Anfänger-Themen 35
P Klassen In einer Autoklasse das Objekt Auto mittels Collection Speichern Java Basics - Anfänger-Themen 4
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
J Objekt in Collection speichern Java Basics - Anfänger-Themen 4
A Interface in Collection (Liste) angeben Java Basics - Anfänger-Themen 2
J Collection Objekt Java Basics - Anfänger-Themen 3
T Collections Zusammengehörende Strings in einer Collection Java Basics - Anfänger-Themen 2
S Frage zu Collection-Generics in Subklassen Java Basics - Anfänger-Themen 6
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
B addAll(Collection<? extends E> c) Java Basics - Anfänger-Themen 9
K Collections Collection für 12 mio Strings Java Basics - Anfänger-Themen 7
Y Collection der eigenen Klasse Java Basics - Anfänger-Themen 10
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
R Passende Collection gesucht Java Basics - Anfänger-Themen 11
G Collections Wahl der richtigen Collection Java Basics - Anfänger-Themen 11
O Frage zu Verständnis von Collection Java Basics - Anfänger-Themen 4
D Scala Iterable zu Java Collection konvertieren Java Basics - Anfänger-Themen 3
D Frage zu Collection und deren Anwendung Java Basics - Anfänger-Themen 2
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
J Collection soll übergeben werden... Java Basics - Anfänger-Themen 7
C Vector - obsolete collection Java Basics - Anfänger-Themen 1
B Iterator und Collection Java Basics - Anfänger-Themen 11
G Java Collection Frameworks Java Basics - Anfänger-Themen 5
D Collection Konvertieren Java Basics - Anfänger-Themen 7
K Datentypen Über Collection iterieren bringt fehler Java Basics - Anfänger-Themen 8
K OOP Aus Collection Objekte bestimmter Subklassen entfernen Java Basics - Anfänger-Themen 7
S Welche Collection? Java Basics - Anfänger-Themen 5
S Collection rückwärts durchsuchen Java Basics - Anfänger-Themen 4
W Wie kann ich auf Object meiner Collection zugreifen Java Basics - Anfänger-Themen 7
J Collection Vector Java Basics - Anfänger-Themen 8
B Collection während Iteration verändern Java Basics - Anfänger-Themen 7
T Collection in collection Java Basics - Anfänger-Themen 6
T Collection von Objekten verschiedener Klassen Java Basics - Anfänger-Themen 4
C Collection vs. LinkedList, Abstrakt vs. Konkret Java Basics - Anfänger-Themen 9
G Collection<BufImg> in Datei speichern Java Basics - Anfänger-Themen 8
A Collection auslesen ohne Objekttyp zu kennen? Java Basics - Anfänger-Themen 11
G Collection<Strings> - Liste von Strings verwalten Java Basics - Anfänger-Themen 9
A Struts: Über Collection iterieren mir Taglibs? Java Basics - Anfänger-Themen 13
S Collection<Typ> sort Java Basics - Anfänger-Themen 4
0x7F800000 elemente aus einer Collection korrekt löschen Java Basics - Anfänger-Themen 8
T Frage zu Vererbung beim Collection-Framework Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
M Object [][] ist nicht vom Typ Collection? Java Basics - Anfänger-Themen 3
S Collection wie LinkedHashMap Java Basics - Anfänger-Themen 7
S Collection Sort Java Basics - Anfänger-Themen 15
A Welche Collection? Java Basics - Anfänger-Themen 13
C Collection in Verbindung mit String.split speicherlastig Java Basics - Anfänger-Themen 20
S Collection in einer Collection Java Basics - Anfänger-Themen 5
A Welche Collection soll ich nehmen? Java Basics - Anfänger-Themen 4
E welche Datenstruktur (Collection) Java Basics - Anfänger-Themen 4
K Collection und Iterator Java Basics - Anfänger-Themen 7
I Bestimmte Variablen in Collection Classes Java Basics - Anfänger-Themen 2
M Source Code von Collection Framework, etc. Java Basics - Anfänger-Themen 3
vogella Cast from Collection.toArray to String[] Java Basics - Anfänger-Themen 2
S Mit Collection<int[]> umgehen Java Basics - Anfänger-Themen 2
S welche collection ? String und object Java Basics - Anfänger-Themen 5
M gibt es eine collection mit definierter maximaler größe Java Basics - Anfänger-Themen 4
G Collection Framework Java Basics - Anfänger-Themen 8
V Mehrdimensionale Collection? Java Basics - Anfänger-Themen 4
U JSTL: Collection auslesen mit forEach Java Basics - Anfänger-Themen 1
A Interface Collection implementieren? Java Basics - Anfänger-Themen 4
I Collection sortieren, ":" höchste "Priorität& Java Basics - Anfänger-Themen 4
P Äquivalent zu Visual Basic Collection Java Basics - Anfänger-Themen 6
G Collection, aber welche? Java Basics - Anfänger-Themen 6
A Collection<String> Java Basics - Anfänger-Themen 4
D Frage zu Collection.sort bzw. Comparator u. Comparable Java Basics - Anfänger-Themen 2
E Strings in Collection Java Basics - Anfänger-Themen 6
R welche Collection nehmen? Java Basics - Anfänger-Themen 4
P Collection Vector speichern mittels Serialisierung? Java Basics - Anfänger-Themen 2
megachucky Collection Vector: ausgabe klappt nicht richtig Java Basics - Anfänger-Themen 9
T Welche Collection nehmen? HashMap? Java Basics - Anfänger-Themen 4
L-ectron-X Speicher freigeben - Garbage Collection Java Basics - Anfänger-Themen 6
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
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
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
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
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

Ähnliche Java Themen

Neue Themen


Oben