Alle Möglichen Kombinationen einer Liste

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo allerseits,

nachdem ich mir stunden den Kopf mit dem Problem zermartert habe, möchte ich euch nun um Rat bitten. Vlt. schafft es ja jemand diese Nuss zu knacken. Es ist mit sicherheit nicht easy, aber auf jeden Fall machbar. (Nur nicht für mein kleines Hirn :oops: )

Es geht darum das ich eine Liste habe:

Code:
    List CharacterList = new ArrayList();
    
    // Buchstaben
    CharacterList.add("a");
    // bis ...
    CharacterList.add("z");
    
    // Umlaute
    CharacterList.add("ä");
    ///...

    // Zahlen
    CharacterList.add("0");
    // bis ...
    CharacterList.add("9");
    
    // Sonderzeichen    
    CharacterList.add(".");
    CharacterList.add("§");
    CharacterList.add("$");
    CharacterList.add("\\");

und ich damit jetzt sämtliche möglichkeiten durchgehen will.

Also:
a bis \

dann von...
aa bis a\

weiter mit...
ba bis b\

bis schließlich
\a bis \\

dann die nächste Ziffer
aaa bis aa\

weiter mit
aba bis ab\

uns so weiter und sofort bis schließlich und endlich: \\\\\\ (z.B.)


Mir ist einzig und allein dieser Lösungsansatz bis jetzt eingefallen:

Code:
    for (int i=0; i < CharacterList.size(); i++)
    {
       String ErsteZiffer = CharacterList.get(i).toString();
      
        for (int b=0; b < CharacterList.size(); b++)
        {
          String tKompletterString= ErsteZiffer + CharacterList.get(b).toString();
          System.out.println(tKompletterString);
        } 
    }

Man könnte jetzt z.B. für 6 Stellen, 6 Schleifen ineinander verketten... ist ja aber nicht so toll. Und vor allem möchte ich die Möglichkeit einbeziehen dass es mehr wie 6 oder weniger wie 6 stellen geben kann.

Um das ganze noch auf die Spitze zu treiben, kommt noch dazu dass diese Strings von einem Übergeordneten Element (String) abhängig sind.

also z.B:
a: aaa bis \\\
b: aaa bis \\\
bis schließlich
\: aaa bis \\\
und dann:
aa: aaa bis \\\ ==> \\: aaa bis \\\ usw. ...


Den rechenaufwand den der PC dabei hat möchte ich jetzt mal ausen vor lassen. Bei einer 6 stelligen Ziffer wär das ne 1 mit 136 Nullen hinten dran, was es an möglichkeiten gäbe. Es geht mir um das rein logische.

Ich denke zwar nicht das mir jemand eine brauchbare Lösung liefern könnte, aber vlt. ja doch. Es wäre auf jeden Fall spitze wenn der ein oder andere sich mal gedanken darüber machen würde. (So am Wochenende wenn man mal nichts zu tun hat).


MfG
 
S

SlaterB

Gast
lange nachdenken muss man da nicht wenn man es kennt,
ganz grobe Idee:
verwende lieber Array als ArrayList, Dynamik brauchst du nicht,
fange klein an, 2 oder 3 Elemente statt viele..

z.B.
[a,b,c]
dazu ein Positionsarray
[0,0,0]
das musst du in einer Endlosschleife erhöhen, wie ein Kilometerzähler beim Auto,
001
002
003
004 -> Überlauf 010
011
012 usw

passend zum aktuellen Stand des Index-Arrays baust du dann den String zusammen
000 steht für leeren String
012 für leer + a + b
usw

schon fertig
 
G

Gast

Gast
Gut das ist die Kombination von 3 stellen. Ich möchte aber nicht von 3 stellen ausgehen sondern die größe modal mit einbeziehen. Sonst hätte es mein bsp auch getan. Ich möchte auch nicht mit Arrays arbeiten, sondern mit einer Liste, da das arbeiten mit der Liste viel koomfortabler ist. Zudem kommt noch das wenn das 2. element ins spiel kommt von den die anderen abhängen, man mit einem 2 dimensionalen array arbeiten muss o.ä. und ab da an wirds kompliziert.
 
S

SlaterB

Gast
> Ich möchte aber nicht von 3 stellen ausgehen sondern die größe modal mit einbeziehen

Array sind von Natur aus in ihre Größe beliebig,
alles hängt nur von der Zahl n ab, von der Länge des Anfangs-Arrays (in meinem Beispiel [a,b,c], aber genausogut jedes andere)
bzw der Liste ;)

> Ich möchte auch nicht mit Arrays arbeiten, sondern mit einer Liste, da das arbeiten mit der Liste viel koomfortabler ist.

allgemein schon, aber hier wirst du nur beliebig oft mit get(index) drauf zugreifen,
da ist array[index] nicht viel anders, aber egal

beim IndexArray wirst du ums int[] nicht herumkommen,
dort stattdessen mit einer Integer-Liste zu arbeiten wäre ein Krampf

> das 2. element ins spiel kommt

ganz habe ich das noch nicht verstanden,
kann Probleme machen, kann man aber bestimmt auch elegant miteinbeziehen,

falls du dazu noch was sagst: bleibt es bei den 2 Dimensionen oder ist die Dimensionszahl auch beliebig?
 
G

Gast

Gast
Im endeffekt ist eine Liste ja ziemlich das gleiche wie ein Array, nur das Problem mit arrays ist: wie leg ich ein leeres Array an und füge dann einträge hinzu? Das geht meiner meinung nach nicht so einfach, mit listen schon. z.B. soll der Benutzer eingeben können Liste mit Umlauten; Liste mit Zahlen usw. Dazu werden dann methoden aufgerufen die die Einträge einfach adden. Mit Arrays bräuchte ich dann mehrere Arrays die teilweise den selben inhalt haben.

Das mit den 2. Elementen stell ich mir so vor

Erstes Element zweites Element
a: a bis \\\
bis...
\\\\: a bis \\\


Mal von Listen abgesehen, ist mir auch unklar wie dein Vorschlag in der Praxis aussieht. Könntest du mal ein fertiges Bsp. zeigen? Wäre nicht schlecht.


MfG, Gast :)
 
S

SlaterB

Gast
das mit dem Einfügen am Anfang ist doch sowas von irrelevant,

gar keine Frage, dass man die Elemente zuerst in einer Liste sammeln muss,
aber das sind 10 Programmschritte am Anfang, dann steht die Menge der Elemente für die restlichen 10 Mio. Programmschritte fest,
und man kann die Liste in ein Array umwandeln..


ein Beispiel programmiere ich dir nicht, nein ;)
 
B

bygones

Gast
Gast hat gesagt.:
Tja und weist du warum nicht, weil es nicht funktioniert ;-)
hehe wie geil... wenn du das schon alles weisst - interessant dass dann noch so fragen kommen.

*SlaterUnterstuetz*

Im endeffekt ist eine Liste ja ziemlich das gleiche wie ein Array, nur das Problem mit arrays ist: wie leg ich ein leeres Array an und füge dann einträge hinzu? Das geht meiner meinung nach nicht so einfach, mit listen schon. z.B. soll der Benutzer eingeben können Liste mit Umlauten; Liste mit Zahlen usw. Dazu werden dann methoden aufgerufen die die Einträge einfach adden. Mit Arrays bräuchte ich dann mehrere Arrays die teilweise den selben inhalt haben.
einen leeren array anzulegen sollte doch bekannt sein ? wenn nicht, dann wirst du allgemein nicht viel weiterkommen....
und eintraege hinzufuegen ist sogar einfacher
Code:
String[] s = new String[10];
s[0] = "HALLO";

List<String> ss = new ArrayList<String>();
ss.add("HALLO");

und wenn du schon versch. methoden hast die einfach irgendwelche eintraege in die liste einfuegen, dann viel spass beim auslesen und casten. Also entweder du hast auch mehrer Listen, du arbeitest mit korrekten Generics (spaetestens da ist es wurscht ob Array oder Liste) oder du haust einfach alles irgendwie in die liste und holst das dann irgendwie raus (etwas unschoeners gibt es nicht).

Und generell wuerde ich vorsichtig sein von List zu sprechen und die mit einem Array zu vergleichen... nehm eine LinkedList und ruf dann get() auf... freu dich dann ueber die einbrechende Performance
 
G

Gast

Gast
Das ist kein leeres Array sondern ein Array mit 10 Feldern die keinen Inhalt haben, toll!

Und du weist dem Index 0 (konkret) eine variable zu.

jetzt hast du dein String Array s aber schon alle 10 felder zugewiesen und willst an 11. position (z.B.) einen neuen Eintrag hinzufügen. Geht nicht ohne ein neues Array in dem du das alte hinein kopierst. Das neue Array braucht aber wieder eine feste größe usw.

So dumm bin ich auch nicht, aber anscheinend versteht hier keiner die Problematik.

Etwas theoretisch ohne konkretes Bsp zu bringen ist nutzlos.


Ich habs mittlerweile selbst geschafft, ohne Arrays,
aber reinstellen tu ich die lösung nicht, nein ;-)

und damit auf nimmer wiedersehen
 
B

bygones

Gast
Gast hat gesagt.:
Das ist kein leeres Array sondern ein Array mit 10 Feldern die keinen Inhalt haben, toll!

Und du weist dem Index 0 (konkret) eine variable zu.

jetzt hast du dein String Array s aber schon alle 10 felder zugewiesen und willst an 11. position (z.B.) einen neuen Eintrag hinzufügen. Geht nicht ohne ein neues Array in dem du das alte hinein kopierst. Das neue Array braucht aber wieder eine feste größe usw.

So dumm bin ich auch nicht, aber anscheinend versteht hier keiner die Problematik.
schau dir den code von arraylist an - dann reden wir weiter....

kleiner Tipp: Arraylist.

ob du nun einen Array nutzt und selbststaendig neue arrays erzuegst und reinkopierst oder das ueber die liste machen laesst ist wurscht....
und du glaubst doch nicht, dass mit new ArrayList du eine leere liste (bzw einen leeren Array angelegt hast ?)

aber lieber unwissen praesentieren und dann beleidigt verschwinden... cool
 
S

SlaterB

Gast
wobei es aber wirklich Quatsch wäre, selber mit nem Array anzufangen, da was einzufügen, die Größe verdoppeln, Array-Inhalt kopieren usw.,
also quasi ArrayList nachzubauen ;)

das hat aber nix damit zu tun, dass man 99.99% des Programms nichts mehr einfügt und dann ein Array benutzen kann
während am Anfang ganz klar eine Liste auf dem Plan steht
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
L Alle möglichen Additionen (Rekursiv) Allgemeine Java-Themen 3
B Alle möglichen Buchstabenkombinationen in einem String Allgemeine Java-Themen 7
M alle möglichen Zahlenkombinationen Allgemeine Java-Themen 5
G Alle möglichen Konfigurationen eines Baumes Allgemeine Java-Themen 4
C Alle Möglichen Substrings der Länge k aus String extrahieren Allgemeine Java-Themen 9
G Alle möglichen Permutationen einer Folge n Allgemeine Java-Themen 3
H Alle möglichen Hochkommata ausschließen Allgemeine Java-Themen 6
Zrebna Wie ermittelt man alle testbaren (zu testenden) Klassen in seinem Maven-Projekt? Allgemeine Java-Themen 23
_user_q Alle Kombinationen von "0000" bis "FFFF" kompakt schrieben Allgemeine Java-Themen 13
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
Kingamadeus2000 Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen. Allgemeine Java-Themen 6
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
L Farbverlauf RGB alle Farben Allgemeine Java-Themen 28
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
S Alle Dateinamen ermitteln Allgemeine Java-Themen 22
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
MaxG. Best Practice Alle Kombinationen berechnen Allgemeine Java-Themen 3
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
J Alle Unit Tests in Maven Modul Projekt ausführen Allgemeine Java-Themen 7
S Anwendung die alle Abhaengigkeiten einer Library listet..? Allgemeine Java-Themen 5
T Alle Kombinationen aus zwei Arrays Allgemeine Java-Themen 8
K Nicht alle class-Dateien im JRE? Allgemeine Java-Themen 2
I Alle logs von Logger bekommen Allgemeine Java-Themen 3
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
K Classpath Alle Classen aus einem Package lesen Allgemeine Java-Themen 7
KaffeeFan Methoden replace alle Buchstaben Allgemeine Java-Themen 3
S Alle Methodenaufrufe eines Threads notieren..? Allgemeine Java-Themen 7
U Koordinaten alle Pixel eines Dreiecks zeichnen ausgeben Allgemeine Java-Themen 5
Z Eclipse hängt sich alle paar Sekunden auf (Keine Rückmeldung). Allgemeine Java-Themen 4
Seikuassi Alle Escape-Sequenzen in einem String ersetzen Allgemeine Java-Themen 4
F Java Spintax: Alle Kombinationen Erzeugen Allgemeine Java-Themen 2
Sogomn Klassen Alle in eine Klasse Allgemeine Java-Themen 11
P Methoden Alle Kombinationen aus 2 Karten berechnen Allgemeine Java-Themen 2
B Threads Barrier mit wait()/notify() aber nicht alle Prozesse terminieren Allgemeine Java-Themen 2
S .jar hat nicht alle Klassen ??? Allgemeine Java-Themen 10
T Wie kann ich alle existierenden Java-Klassen anzeigen lassen? Allgemeine Java-Themen 10
M Zufälligen String generieren und alle 5 Minuten ändern Allgemeine Java-Themen 2
M RegEx alle Matches ausgeben Allgemeine Java-Themen 5
A Applet Alle Threads beim schließen des Applets beenden Allgemeine Java-Themen 8
C SwingWorker.cancle(true) tötet alle Worker Allgemeine Java-Themen 3
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
T Alle Instancen einer Klasse auflisten Allgemeine Java-Themen 13
S Programm das alle aufgerufenen Methoden ausgibt..? Allgemeine Java-Themen 6
S Alle Kombinationen aus ArrayList - Potenzmenge Allgemeine Java-Themen 7
D Alle Variablen final setzen ? Allgemeine Java-Themen 26
brunothg Alle Kombiationen von n Ziffern Allgemeine Java-Themen 2
M Erste Schritte alle xmlFiles in zugehörige pdfFiles einlesen Allgemeine Java-Themen 4
B Variablen Alle RenderingHints.Keys (KEY_*) in Array + alle RenderingHints.Keys (VALUE_*) in Object[] Allgemeine Java-Themen 8
D generische Klasse für alle Maps (nicht Collections :-)) Allgemeine Java-Themen 11
E Logger loggt nicht alle Level Allgemeine Java-Themen 2
S Aus einer Liste<Oberklasse> alle Elemente die eine bestimmte Unterklasse von Oberklasse haben filter Allgemeine Java-Themen 8
K String: alle X Zeichen Zeilenumbruch Allgemeine Java-Themen 3
F Alle Exceptions abfangen Allgemeine Java-Themen 4
nrg JS als ScriptEngine - alle Punkte ersetzen Allgemeine Java-Themen 4
A Bildschirmauflösung geändert - alle Bildschirminhalte verschoben - was tun? Allgemeine Java-Themen 7
C Alle Klassen eines Packages lesen und instanzieren? Allgemeine Java-Themen 9
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
S Warum packt er nicht alle Dateien? Allgemeine Java-Themen 13
J Alle Tage eines Jahres Allgemeine Java-Themen 2
AlexSpritze Alle Domains oder FQDN von einem Server erfragen? Allgemeine Java-Themen 2
Spot84 alle kombinationen einer string arraylist Allgemeine Java-Themen 2
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
J Konstrukt um alle Paare und Tripel einer Punkte-Menge bilden Allgemeine Java-Themen 12
P alle zusammanhaengenden teilgraphen Allgemeine Java-Themen 7
A alle nicht-dplikate finden Allgemeine Java-Themen 14
M Wie kann ich alle System.out Strings in ein log window umleiten? Allgemeine Java-Themen 6
E Alle unter Prozesse der beim schließen mit schließen Allgemeine Java-Themen 3
A An alle Cracks: Anwendung beenden mit ShutdownHook? Allgemeine Java-Themen 13
J Logger gibt nicht alle Level aus Allgemeine Java-Themen 3
B in welchem verzeichnis liegen alle installierten klassen? Allgemeine Java-Themen 6
hdi Für alle fleissigen Helfer! Allgemeine Java-Themen 15
N Alle Fehler ausgeben? Allgemeine Java-Themen 4
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
O Auf alle Events reagieren Allgemeine Java-Themen 3
B J-Unit Tests. Alle Tests eines Package einsammen. Allgemeine Java-Themen 4
U alle Dateien eines Ordners innerhalb einer JAR auflisten Allgemeine Java-Themen 6
S toString() für alle Member einer Klasse. Allgemeine Java-Themen 6
C Alle Bilder eines binären Arrays ausgeben Allgemeine Java-Themen 3
V Alle Klassen eines Package auflisten? Allgemeine Java-Themen 6
H JTable Löschen [Alle Zeilen aufeinmal Löschen] Allgemeine Java-Themen 6
@ RegEx: Alle Sonderzeichen ausser dem Punkt Allgemeine Java-Themen 4
M Gibt es ein Jar - das alle Componente Automatisch anpasst? Allgemeine Java-Themen 14
K Suche alle Objekte einer bestimmten Klasse Allgemeine Java-Themen 2
N Unter Mac Os X alle laufenden Prozesse ausgeben Allgemeine Java-Themen 3
S Änderung an Proberties datei an alle User weitergeben? Allgemeine Java-Themen 7
P Observer, nicht alle updates bearbeiten Allgemeine Java-Themen 2
der JoJo [TreeSelection] wie bekomme ich alle Elemente Allgemeine Java-Themen 4
G Alle Zeichen des Alphabets ausgeben Allgemeine Java-Themen 4
G Alle Möglichkeiten n Elemente Anzuordnen. Allgemeine Java-Themen 13
0 Alle Teiler einer Zahl performant berechnen? Allgemeine Java-Themen 9
J Funktion alle Möglichkeiten berücksichtigen Allgemeine Java-Themen 5
O Warten bis alle gestarteten Threads beendet sind? Allgemeine Java-Themen 6
G HTML file Alle relativen URL in absolute URL umschreiben? Allgemeine Java-Themen 12

Ähnliche Java Themen


Oben