Arraylisten sortieren

bauernsk1ll

Grünschnabel
Hi,
ich suche nach einer Möglichkeit vier Arraylisten zu sortieren.
Die Vorgabe ist:

"The list should be sorted by ascending number of duplicates and within each duplicate level alphabetically"

Die Arraylisten mit Unterscheidungen in den Duplikaten habe ich bereits erstellt.
Wie kann ich hier weiter vorgehen?

Grüße
 
Wie sehen denn die Listen aus?

Aber prinzipiell so: Du kannst Listen mit Collections.sort(List) oder mit Collections.sort(List, Comparator) sortieren lassen. Die erste Variante geht, wenn deine Objekte das Interface Comparable implementieren, ansonsten kannst du die zweite Variante nehmen und den Comparator den Vergleich übernehmen lassen. Egal auf welche Art du das machst, du kannst dabei halt deine Sortierstufen gut definieren. Zuerst prüfst du eben auf Gleichheit der Nummern, bei den Ergebnissen 1 oder -1 war's das dann auch schon. Wenn aber bei dem Nummernvergleich als Ergebnis 0 kommt (also sind beide Nummern gleich), dann gehst du halt in die nächste Ebene und vergleichst den nächsten Part.
 
Ich habe eig nur 4 listen erstellt die sich darin unterscheiden, dass keine/ein/zwei/drei duplikat/e enthalten sind. mit duplikaten ist gemeint, dass diese direkt aufeinander folgen müssen.
Bsp: abca ist kein Duplikat, aabc hingegen schon.
Die fertige Listen sollten dann unter den oben genannten Kriterien zusammengeführt werden("The list should be sorted by ascending number of duplicates and within each duplicate level alphabetically").

Die fertige Liste sieht dann folgendermaßen aus, wenn man alle Permutationen mit Wiederholungen für den String "abcdef" betrachtet.

Code:
[aaaa, aaab, aaac, aaad, aaae, aaaf, aaba, aabb, aabc, aabd, aabe, aabf, aaca, aacb, aacc, aacd, aace, aacf, aada, aadb, aadc, aadd, aade, aadf, aaea, aaeb, aaec, aaed, aaee, aaef, aafa, aafb, aafc, aafd, aafe, aaff, abaa, abab, abac, abad, abae, abaf, abba, abbb, abbc, abbd, abbe, abbf, abca, abcb, abcc, abcd, abce, abcf, abda, abdb, abdc, abdd, abde, abdf, abea, abeb, abec, abed, abee, abef, abfa, abfb, abfc, abfd, abfe, abff, acaa, acab, acac, acad, acae, acaf, acba, acbb, acbc, acbd, acbe, acbf, acca, accb, accc, accd, acce, accf, acda, acdb, acdc, acdd, acde, acdf, acea, aceb, acec, aced, acee, acef, acfa, acfb, acfc, acfd, acfe, acff, adaa, adab, adac, adad, adae, adaf, adba, adbb, adbc, adbd, adbe, adbf, adca, adcb, adcc, adcd, adce, adcf, adda, addb, addc, addd, adde, addf, adea, adeb, adec, aded, adee, adef, adfa, adfb, adfc, adfd, adfe, adff, aeaa, aeab, aeac, aead, aeae, aeaf, aeba, aebb, aebc, aebd, aebe, aebf, aeca, aecb, aecc, aecd, aece, aecf, aeda, aedb, aedc, aedd, aede, aedf, aeea, aeeb, aeec, aeed, aeee, aeef, aefa, aefb, aefc, aefd, aefe, aeff, afaa, afab, afac, afad, afae, afaf, afba, afbb, afbc, afbd, afbe, afbf, afca, afcb, afcc, afcd, afce, afcf, afda, afdb, afdc, afdd, afde, afdf, afea, afeb, afec, afed, afee, afef, affa, affb, affc, affd, affe, afff, baaa, baab, baac, baad, baae, baaf, baba, babb, babc, babd, babe, babf, baca, bacb, bacc, bacd, bace, bacf, bada, badb, badc, badd, bade, badf, baea, baeb, baec, baed, baee, baef, bafa, bafb, bafc, bafd, bafe, baff, bbaa, bbab, bbac, bbad, bbae, bbaf, bbba, bbbb, bbbc, bbbd, bbbe, bbbf, bbca, bbcb, bbcc, bbcd, bbce, bbcf, bbda, bbdb, bbdc, bbdd, bbde, bbdf, bbea, bbeb, bbec, bbed, bbee, bbef, bbfa, bbfb, bbfc, bbfd, bbfe, bbff, bcaa, bcab, bcac, bcad, bcae, bcaf, bcba, bcbb, bcbc, bcbd, bcbe, bcbf, bcca, bccb, bccc, bccd, bcce, bccf, bcda, bcdb, bcdc, bcdd, bcde, bcdf, bcea, bceb, bcec, bced, bcee, bcef, bcfa, bcfb, bcfc, bcfd, bcfe, bcff, bdaa, bdab, bdac, bdad, bdae, bdaf, bdba, bdbb, bdbc, bdbd, bdbe, bdbf, bdca, bdcb, bdcc, bdcd, bdce, bdcf, bdda, bddb, bddc, bddd, bdde, bddf, bdea, bdeb, bdec, bded, bdee, bdef, bdfa, bdfb, bdfc, bdfd, bdfe, bdff, beaa, beab, beac, bead, beae, beaf, beba, bebb, bebc, bebd, bebe, bebf, beca, becb, becc, becd, bece, becf, beda, bedb, bedc, bedd, bede, bedf, beea, beeb, beec, beed, beee, beef, befa, befb, befc, befd, befe, beff, bfaa, bfab, bfac, bfad, bfae, bfaf, bfba, bfbb, bfbc, bfbd, bfbe, bfbf, bfca, bfcb, bfcc, bfcd, bfce, bfcf, bfda, bfdb, bfdc, bfdd, bfde, bfdf, bfea, bfeb, bfec, bfed, bfee, bfef, bffa, bffb, bffc, bffd, bffe, bfff, caaa, caab, caac, caad, caae, caaf, caba, cabb, cabc, cabd, cabe, cabf, caca, cacb, cacc, cacd, cace, cacf, cada, cadb, cadc, cadd, cade, cadf, caea, caeb, caec, caed, caee, caef, cafa, cafb, cafc, cafd, cafe, caff, cbaa, cbab, cbac, cbad, cbae, cbaf, cbba, cbbb, cbbc, cbbd, cbbe, cbbf, cbca, cbcb, cbcc, cbcd, cbce, cbcf, cbda, cbdb, cbdc, cbdd, cbde, cbdf, cbea, cbeb, cbec, cbed, cbee, cbef, cbfa, cbfb, cbfc, cbfd, cbfe, cbff, ccaa, ccab, ccac, ccad, ccae, ccaf, ccba, ccbb, ccbc, ccbd, ccbe, ccbf, ccca, cccb, cccc, cccd, ccce, cccf, ccda, ccdb, ccdc, ccdd, ccde, ccdf, ccea, cceb, ccec, cced, ccee, ccef, ccfa, ccfb, ccfc, ccfd, ccfe, ccff, cdaa, cdab, cdac, cdad, cdae, cdaf, cdba, cdbb, cdbc, cdbd, cdbe, cdbf, cdca, cdcb, cdcc, cdcd, cdce, cdcf, cdda, cddb, cddc, cddd, cdde, cddf, cdea, cdeb, cdec, cded, cdee, cdef, cdfa, cdfb, cdfc, cdfd, cdfe, cdff, ceaa, ceab, ceac, cead, ceae, ceaf, ceba, cebb, cebc, cebd, cebe, cebf, ceca, cecb, cecc, cecd, cece, cecf, ceda, cedb, cedc, cedd, cede, cedf, ceea, ceeb, ceec, ceed, ceee, ceef, cefa, cefb, cefc, cefd, cefe, ceff, cfaa, cfab, cfac, cfad, cfae, cfaf, cfba, cfbb, cfbc, cfbd, cfbe, cfbf, cfca, cfcb, cfcc, cfcd, cfce, cfcf, cfda, cfdb, cfdc, cfdd, cfde, cfdf, cfea, cfeb, cfec, cfed, cfee, cfef, cffa, cffb, cffc, cffd, cffe, cfff, daaa, daab, daac, daad, daae, daaf, daba, dabb, dabc, dabd, dabe, dabf, daca, dacb, dacc, dacd, dace, dacf, dada, dadb, dadc, dadd, dade, dadf, daea, daeb, daec, daed, daee, daef, dafa, dafb, dafc, dafd, dafe, daff, dbaa, dbab, dbac, dbad, dbae, dbaf, dbba, dbbb, dbbc, dbbd, dbbe, dbbf, dbca, dbcb, dbcc, dbcd, dbce, dbcf, dbda, dbdb, dbdc, dbdd, dbde, dbdf, dbea, dbeb, dbec, dbed, dbee, dbef, dbfa, dbfb, dbfc, dbfd, dbfe, dbff, dcaa, dcab, dcac, dcad, dcae, dcaf, dcba, dcbb, dcbc, dcbd, dcbe, dcbf, dcca, dccb, dccc, dccd, dcce, dccf, dcda, dcdb, dcdc, dcdd, dcde, dcdf, dcea, dceb, dcec, dced, dcee, dcef, dcfa, dcfb, dcfc, dcfd, dcfe, dcff, ddaa, ddab, ddac, ddad, ddae, ddaf, ddba, ddbb, ddbc, ddbd, ddbe, ddbf, ddca, ddcb, ddcc, ddcd, ddce, ddcf, ddda, dddb, dddc, dddd, ddde, dddf, ddea, ddeb, ddec, dded, ddee, ddef, ddfa, ddfb, ddfc, ddfd, ddfe, ddff, deaa, deab, deac, dead, deae, deaf, deba, debb, debc, debd, debe, debf, deca, decb, decc, decd, dece, decf, deda, dedb, dedc, dedd, dede, dedf, deea, deeb, deec, deed, deee, deef, defa, defb, defc, defd, defe, deff, dfaa, dfab, dfac, dfad, dfae, dfaf, dfba, dfbb, dfbc, dfbd, dfbe, dfbf, dfca, dfcb, dfcc, dfcd, dfce, dfcf, dfda, dfdb, dfdc, dfdd, dfde, dfdf, dfea, dfeb, dfec, dfed, dfee, dfef, dffa, dffb, dffc, dffd, dffe, dfff, eaaa, eaab, eaac, eaad, eaae, eaaf, eaba, eabb, eabc, eabd, eabe, eabf, eaca, eacb, eacc, eacd, eace, eacf, eada, eadb, eadc, eadd, eade, eadf, eaea, eaeb, eaec, eaed, eaee, eaef, eafa, eafb, eafc, eafd, eafe, eaff, ebaa, ebab, ebac, ebad, ebae, ebaf, ebba, ebbb, ebbc, ebbd, ebbe, ebbf, ebca, ebcb, ebcc, ebcd, ebce, ebcf, ebda, ebdb, ebdc, ebdd, ebde, ebdf, ebea, ebeb, ebec, ebed, ebee, ebef, ebfa, ebfb, ebfc, ebfd, ebfe, ebff, ecaa, ecab, ecac, ecad, ecae, ecaf, ecba, ecbb, ecbc, ecbd, ecbe, ecbf, ecca, eccb, eccc, eccd, ecce, eccf, ecda, ecdb, ecdc, ecdd, ecde, ecdf, ecea, eceb, ecec, eced, ecee, ecef, ecfa, ecfb, ecfc, ecfd, ecfe, ecff, edaa, edab, edac, edad, edae, edaf, edba, edbb, edbc, edbd, edbe, edbf, edca, edcb, edcc, edcd, edce, edcf, edda, eddb, eddc, eddd, edde, eddf, edea, edeb, edec, eded, edee, edef, edfa, edfb, edfc, edfd, edfe, edff, eeaa, eeab, eeac, eead, eeae, eeaf, eeba, eebb, eebc, eebd, eebe, eebf, eeca, eecb, eecc, eecd, eece, eecf, eeda, eedb, eedc, eedd, eede, eedf, eeea, eeeb, eeec, eeed, eeee, eeef, eefa, eefb, eefc, eefd, eefe, eeff, efaa, efab, efac, efad, efae, efaf, efba, efbb, efbc, efbd, efbe, efbf, efca, efcb, efcc, efcd, efce, efcf, efda, efdb, efdc, efdd, efde, efdf, efea, efeb, efec, efed, efee, efef, effa, effb, effc, effd, effe, efff, faaa, faab, faac, faad, faae, faaf, faba, fabb, fabc, fabd, fabe, fabf, faca, facb, facc, facd, face, facf, fada, fadb, fadc, fadd, fade, fadf, faea, faeb, faec, faed, faee, faef, fafa, fafb, fafc, fafd, fafe, faff, fbaa, fbab, fbac, fbad, fbae, fbaf, fbba, fbbb, fbbc, fbbd, fbbe, fbbf, fbca, fbcb, fbcc, fbcd, fbce, fbcf, fbda, fbdb, fbdc, fbdd, fbde, fbdf, fbea, fbeb, fbec, fbed, fbee, fbef, fbfa, fbfb, fbfc, fbfd, fbfe, fbff, fcaa, fcab, fcac, fcad, fcae, fcaf, fcba, fcbb, fcbc, fcbd, fcbe, fcbf, fcca, fccb, fccc, fccd, fcce, fccf, fcda, fcdb, fcdc, fcdd, fcde, fcdf, fcea, fceb, fcec, fced, fcee, fcef, fcfa, fcfb, fcfc, fcfd, fcfe, fcff, fdaa, fdab, fdac, fdad, fdae, fdaf, fdba, fdbb, fdbc, fdbd, fdbe, fdbf, fdca, fdcb, fdcc, fdcd, fdce, fdcf, fdda, fddb, fddc, fddd, fdde, fddf, fdea, fdeb, fdec, fded, fdee, fdef, fdfa, fdfb, fdfc, fdfd, fdfe, fdff, feaa, feab, feac, fead, feae, feaf, feba, febb, febc, febd, febe, febf, feca, fecb, fecc, fecd, fece, fecf, feda, fedb, fedc, fedd, fede, fedf, feea, feeb, feec, feed, feee, feef, fefa, fefb, fefc, fefd, fefe, feff, ffaa, ffab, ffac, ffad, ffae, ffaf, ffba, ffbb, ffbc, ffbd, ffbe, ffbf, ffca, ffcb, ffcc, ffcd, ffce, ffcf, ffda, ffdb, ffdc, ffdd, ffde, ffdf, ffea, ffeb, ffec, ffed, ffee, ffef, fffa, fffb, fffc, fffd, fffe, ffff]

edit:Dankeschön hat sich erledigt :)
 
Zuletzt bearbeitet von einem Moderator:
Hi,
also wenn ich das richtig verstanden habe, dann musst du die Werte für die Liste alphabetisch sortieren.
Wenn du die Sortierung nicht selber machen musst, würde ich dir empfehlen mit dem SortedSet (TreeSet) zu arbeiten. Dieses TreeSet sortiert dir die Werte automatisch nach dem Alphabet.

Gruß

Fabio
 
Zurück