1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
802
802
EMPFEHLEN
-
31.03.11 21:34 #1
- Registriert seit
- Mar 2011
- Beiträge
- 7
Hallo,
also ich habe eine ArrayList die Elemente enthält. Jetzt möchte ich jedes Element mit einem anderen vergleichen . Geht so was? Wenn ich es in einer geschachtelten for-Schleife mache
for (int i = 0; i < segmente.size() ; i++) {
for(int j=1; j< segmente.size()-1; j++){
System.out.println(segmente.get(i).schneidetSegment(segmente.get(j)));
}
}
wie hier, dann werden fürs 1. Segment ein paar Segmente (je nach Größe) betrachtet, fürs 2. Segment die nächsten Paar usw. Ich bin für jede Hilfe sehr dankbar.
-
Hi und Willkommen bei tutorials.de

Du möchtest also alle möglichen Kombinationen vergleichen, nur nicht ein Element mit sich selber?
Code java:1 2 3 4 5 6 7 8 9
int i, J, k; k=segmente.size(); for(i=0;i<k;i++) { for(j=0;j<k:j++) { //Vergleich } }
Ohne Start bei 1 und size()-1
Oder hab ich dich falsch verstanden?
GrußGeändert von sheel (31.03.11 um 21:46 Uhr) Grund: Formatierung
-
31.03.11 22:07 #3
- Registriert seit
- Mar 2011
- Beiträge
- 7
Vielen Dank erstmal
,
ich glaube ich habe es etwas ungenau erklärt.
10 2050 2645 2050 2645 2730 10 2730 10 2050
4428 2050 7063 2050 7063 2730 4428 2730 4428 2050
Also das sind 2 Zeilen aus Segment. Das sind x- und y-Koordinate die jeweils einen Punkt bilden und 2 Punkte sind ein Segment. Wenn ich jetzt deinen Code anwende dann werden die einzelnen Segmente aus einer Zeile verglichen, das ist aber gar nicht nötig. Es sollen alle Segmente aus Zeile 1 mit denen aus Zeile 2 usw Verglichen werden. Ich hoffe das Problem ist jetzt etwas klarer.
-
Was ist denn die Variable segmente jetzt genau für ein Typ?
-
31.03.11 22:15 #5
- Registriert seit
- Mar 2011
- Beiträge
- 7
segment ist eine Arraylist vom Typ Segment und die ist so aufgebaut:
Segment (Punkt p1, Punkt p2)
sie enthält also alle Segmente für eine Polyline.
-
01.04.11 14:57 #6
Ich würd ehier noch ein Schritt weitergehen und folgendes ändern:
Code java:1 2 3 4 5 6 7 8 9
int i, j, k; k=segmente.size(); for(i=0;i<k-1;i++) { for(j=i+1;j<k:j++) { //Vergleich } }
Ich denke es ist überflüssig zu schauen, ob Segment1 Segment2 schneidet, und, ob Segment2 Segment1 schneidet.
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
Hmm...stimmt irgendwie

Keine Ahnung, was da in meinem Kopf vorgegangen ist...
-
02.04.11 00:18 #8
- Registriert seit
- Mar 2011
- Beiträge
- 7
wenn ich es auf diese Weise mache, dann überspringe ich nur ein Segment ich will aber die ganze Zeile überspringen, ich glaube das ist aber gar nicht möglich
-
Möglich sicher. Aber wo ist bei dir die zweite Zeile? Bis jetzt gibts nur ene Arraylist.
-
02.04.11 10:38 #10
- Registriert seit
- Mar 2011
- Beiträge
- 7
Also ich bin mir nicht sicher aber mit zweiter Zeile meine ich Folgendes:
[((4428,2050),(7063,2050)), ((7063,2050),(7063,2730)), ((7063,2730),(4428,2730)), ((4428,2730),(4428,2050))]
weil wenn ich ArrayList ausgebe dann bekomme ich dies hier:
[((10,2050),(2645,2050)), ((2645,2050),(2645,2730)), ((2645,2730),(10,2730)), ((10,2730),(10,2050))]
[((4428,2050),(7063,2050)), ((7063,2050),(7063,2730)), ((7063,2730),(4428,2730)), ((4428,2730),(4428,2050))]
[((8846,6130),(11481,6130)), ((11481,6130),(11481,6810)), ((11481,6810),(8846,6810)), ((8846,6810),(8846,6130))]
[((8846,4090),(11481,4090)), ((11481,4090),(11481,4770)), ((11481,4770),(8846,4770)), ((8846,4770),(8846,4090))]
[((4428,10),(7063,10)), ((7063,10),(7063,690)), ((7063,690),(4428,690)), ((4428,690),(4428,10))]
[((13264,4090),(15899,4090)), ((15899,4090),(15899,4770)), ((15899,4770),(13264,4770)), ((13264,4770),(13264,4090))]
[((10,10),(2645,10)), ((2645,10),(2645,690)), ((2645,690),(10,690)), ((10,690),(10,10))]
[((8846,2050),(11481,2050)), ((11481,2050),(11481,2730)), ((11481,2730),(8846,2730)), ((8846,2730),(8846,2050))]
[((10,4090),(2645,4090)), ((2645,4090),(2645,4770)), ((2645,4770),(10,4770)), ((10,4770),(10,4090))]
[((10162,5300),(10262,5200)), ((10262,5200),(10362,5300)), ((10362,5300),(10162,5300))]
[((10161,5500),(10161,5000))]
[((3200,2425),(3100,2525)), ((3100,2525),(3200,2625)), ((3200,2625),(3200,2425))]
[((4429,2388),(2641,2388))]
[((5955,3259),(6055,3159)), ((6055,3159),(6155,3259)), ((6155,3259),(5955,3259))]
[((8848,4203),(5955,4203)), ((5955,4203),(5955,2615)), ((5955,2615),(2642,2615))]
[((8056,3315),(8156,3215)), ((8156,3215),(8256,3315)), ((8256,3315),(8056,3315))]
[((8847,4315),(8055,4315)), ((8055,4315),(8055,2614)), ((8055,2614),(7059,2615))]
[((3746,1219),(3846,1119)), ((3846,1119),(3946,1219)), ((3946,1219),(3746,1219))]
[((4430,2163),(3746,2163)), ((3746,2163),(3740,575)), ((3740,575),(2225,575))]
[((12966,4355),(13266,4655)), ((13266,4655),(12966,4955)), ((12966,4955),(12966,4355))]
[((11478,6243),(12150,6243)), ((12150,6243),(12150,4655)), ((12150,4655),(12966,4655))]
[((12966,4355),(13266,4655)), ((13266,4655),(12966,4955)), ((12966,4955),(12966,4355))]
[((11478,4429),(12150,4429)), ((12150,4429),(12150,4655)), ((12150,4655),(12966,4655))]
[((11778,2315),(11478,2615)), ((11478,2615),(11778,2915)), ((11778,2915),(11778,2315))]
[((13266,4203),(12582,4203)), ((12582,4203),(12582,2615)), ((12582,2615),(11778,2615))]
[((8548,2089),(8848,2389)), ((8848,2389),(8548,2689)), ((8548,2689),(8548,2089))]
[((7060,2389),(8548,2389))]
[((1026,3030),(1326,2730)), ((1326,2730),(1626,3030)), ((1626,3030),(1026,3030))]
[((1326,4090),(1326,3030))]
[((5744,1750),(5894,1900)), ((5894,1900),(5744,2050)), ((5744,2050),(5594,1900)), ((5594,1900),(5744,1750))]
[((5744,690),(5744,1750))]
jetzt ist hier eine Zeile eine Polyline, womit die ArrayList segmente befüllt wird, wenn es jetzt in einer geschachtelten for Schleife mache, dann wird ein Segment nicht mit allen anderen verglichen. Ich kann auch so eine Zeile (Polyline) mit einem Segment vergleichen, aber dann wird z.B.
[((4428,2050),(7063,2050)), ((7063,2050),(7063,2730)), ((7063,2730),(4428,2730)), ((4428,2730),(4428,2050))]
mit
(4428,2050),(7063,2050) und
(7063,2050),(7063,2730) unsw. verglichen aber es ja klar das es dort keine Überschneidungen geben kann.
Ähnliche Themen
-
Doppelte Elemente in ArrayList
Von The_Answer1985 im Forum JavaAntworten: 18Letzter Beitrag: 18.02.10, 17:57 -
ArrayList elemente löschen
Von DaSuckOOr im Forum Java GrundlagenAntworten: 5Letzter Beitrag: 09.04.08, 09:07 -
Elemente aus ArrayList einem String hinzufügen
Von The_Answer1985 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 26.09.07, 11:21 -
enum-Elemente in ArrayList speichern?
Von dertobian im Forum C/C++Antworten: 1Letzter Beitrag: 24.06.07, 19:44 -
Inhalt einer ArrayList in andere ArrayList kopieren
Von Pierre im Forum .NET ArchivAntworten: 2Letzter Beitrag: 05.07.05, 16:58





Zitieren

Login





