Hallo,
ich habe ein Programm geschrieben, welches mir alle vierstelligen Buchstabenkombinationen von a-z in eine Liste ablegt(456976 Einträge). (Z.B. aaaa, aaab,aaac,....,zzzw,zzzx,zzzy,zzzz) Mein Problem ist dass ich jetzt diese Liste auf drei verschiedene Buchstabenkombinationen(od,lo und pq) durchsuchen will und dann mir die Anzahl der gefundenen Treffer anzeigen lassen will. Ich habe folgende Methode, die ich nur zwischen Anfang und Ende ändern kann:
da ich aber eine Liste mit 456976 Einträgen habe dauert diese Methode unendlich lange an.
Also habe ich diese wie folgt geändert:
Nur dauert diese Methode auch unendlich lange an. Habe noch versucht sie irgendwie umzuschreiben um sie so schneller durchlaufen zu lassen und auch noch verschiedene regex verwendet weil ich glaube, dass das eine gute Möglichkeit ist meine Methode schneller durchlaufen zu lassen, aber leider ohne Erfolg. Kann mir jemand sagen wie ich dass vielleicht hin bekomme dass das ganze so schnell wie möglich wird? Im Voraus vielen Dank für eure Hilfe!!
ich habe ein Programm geschrieben, welches mir alle vierstelligen Buchstabenkombinationen von a-z in eine Liste ablegt(456976 Einträge). (Z.B. aaaa, aaab,aaac,....,zzzw,zzzx,zzzy,zzzz) Mein Problem ist dass ich jetzt diese Liste auf drei verschiedene Buchstabenkombinationen(od,lo und pq) durchsuchen will und dann mir die Anzahl der gefundenen Treffer anzeigen lassen will. Ich habe folgende Methode, die ich nur zwischen Anfang und Ende ändern kann:
Code:
public static void test(List<String> collection)
{
long time = System.currentTimeMillis();
//Anfang
int count = 0;
for(int i = 0; i < collection.size(); i++)
{
if (((collection.get(i)).indexOf("od") != -1 )
|| ((collection.get(i)).indexOf("lo") != -1 )
|| ((collection.get(i)).indexOf("pq") != -1 ))
count++;
}
//Ende
System.out.println((System.currentTimeMillis()-time) +
"ms (Gefunden: " + count + " Elemente)");
}
da ich aber eine Liste mit 456976 Einträgen habe dauert diese Methode unendlich lange an.
Also habe ich diese wie folgt geändert:
Code:
public static void test(List<String> a){
long time = System.currentTimeMillis();
//Anfang
int count = 0;
Pattern p = Pattern.compile("od|lo|pq");
for(int i = 0; i < a.size(); i++){
Matcher m = p.matcher(a.get(i));
while(m.find()){
count++;
}
}
//Ende
System.out.println((System.currentTimeMillis()-time) +
"ms (Gefunden: " + count + " Elemente)");
}
Nur dauert diese Methode auch unendlich lange an. Habe noch versucht sie irgendwie umzuschreiben um sie so schneller durchlaufen zu lassen und auch noch verschiedene regex verwendet weil ich glaube, dass das eine gute Möglichkeit ist meine Methode schneller durchlaufen zu lassen, aber leider ohne Erfolg. Kann mir jemand sagen wie ich dass vielleicht hin bekomme dass das ganze so schnell wie möglich wird? Im Voraus vielen Dank für eure Hilfe!!