tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von HonniCilest
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
802
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    butterfly84 butterfly84 ist offline Rookie
    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.
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    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
     

  3. #3
    butterfly84 butterfly84 ist offline Rookie
    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.
     

  4. #4
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Was ist denn die Variable segmente jetzt genau für ein Typ?
     

  5. #5
    butterfly84 butterfly84 ist offline Rookie
    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.
     

  6. #6
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    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.
    sheel bedankt sich. 
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  7. #7
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hmm...stimmt irgendwie
    Keine Ahnung, was da in meinem Kopf vorgegangen ist...
     

  8. #8
    butterfly84 butterfly84 ist offline Rookie
    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
     

  9. #9
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Möglich sicher. Aber wo ist bei dir die zweite Zeile? Bis jetzt gibts nur ene Arraylist.
     

  10. #10
    butterfly84 butterfly84 ist offline Rookie
    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

  1. Doppelte Elemente in ArrayList
    Von The_Answer1985 im Forum Java
    Antworten: 18
    Letzter Beitrag: 18.02.10, 17:57
  2. ArrayList elemente löschen
    Von DaSuckOOr im Forum Java Grundlagen
    Antworten: 5
    Letzter Beitrag: 09.04.08, 09:07
  3. Elemente aus ArrayList einem String hinzufügen
    Von The_Answer1985 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 26.09.07, 11:21
  4. enum-Elemente in ArrayList speichern?
    Von dertobian im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 24.06.07, 19:44
  5. Inhalt einer ArrayList in andere ArrayList kopieren
    Von Pierre im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 05.07.05, 16:58