Ich bin ein nicht so erfahrener Programmierer. Ich habe ein Anagramm-Programm geschrieben und das einzige Problem ist, dass es nicht schnell genug ist. Ich habe gesagt, dass meine verschachtelten for loop
das Problem ist, aber ich kann nicht verstehen, wie es zu beheben (set1
ist ein HashSet
mit allen Worten arbeite ich an, eine Karte ist ein LinkedHashMap<String, String>
und Anagramm ein TreeMap<String, TreeSet<String>>
):Wie kann ich Anagram-Programmcode schneller machen? (Java)
for (String element : set1) {
char[] woord = element.toCharArray(); //alfabetical order of each word
Arrays.sort(woord);
String chartostring = new String(woord);
map.put(element, chartostring); // add each word with its sorted letters
TreeSet<String> order_words = new TreeSet<String>(); //creating list of anagrams
for (String o : map.keySet()) { //for each word
if (map.get(o).equals(chartostring)) { //check if there is a value in map which is equal to the sorted letters
order_words.add(o); //add word to list of anagrams
if (order_words.size() > 1) { //we want anagrams so only print if there are atleast 2 words
anagram.put(chartostring, order_words);
}
}
}
}
Kann mir bitte jemand helfen? Danke vielmals.
Dank für Ihren Kommentar, ich es versuchen, ich bin ein Anfänger, damit ich alle Optionen nicht kennen. – maria