0
這是我讀取兩個文件的代碼,一個是文字,另一個是亂碼。該程序讀取和匹配文件中的文字加密的字母。它可以工作,但我希望輸出按字母順序排列。我的代碼中的哪些地方可以放入?按字母排序HashMap程序的輸出
import java.io.*;
import java.util.*;
public class Tester
{
public static void main(String args[]) throws Exception
{
BufferedReader dictionary = new BufferedReader(new FileReader(args[0]));
BufferedReader jumbles = new BufferedReader(new FileReader(args[1]));
HashMap<String, List<String>> lookup = new HashMap<String, List<String>>();
while(dictionary.ready())
{
String word = dictionary.readLine();
addWord(word, lookup);
}
dictionary.close();
while(jumbles.ready())
{
String jWord = jumbles.readLine();
List<String>dWords= lookup.get(createKey(jWord));
String wordsString = Arrays.toString(dWords.toArray()).replace("[", "").replace("]", "").replace(",", "").trim();
if(dWords != null){
System.out.println(jWord + " " + wordsString);
}
}
jumbles.close();
}
private static String createKey(String word)
{
char[] cword = word.toCharArray();
Arrays.sort(cword);
return new String(cword);
}
private static void addWord(String word, Map<String, List<String>> lookup)
{
String key = createKey(word);
List<String> list = lookup.get(key);
if(list == null)
{
list = new ArrayList<String>();
lookup.put(key, list);
}
list.add(word);
}
}
輸出:
atc act cat tac otsp post pots stop spot tops opts gdo dog god atr rat tar art arpt trap tarp part grof frog sylogs glossy
我想要什麼:
arpt part tarp trap atc act cat tac atr art rat tar gdo dog god grof frog otsp opts post pots spot stop tops sylogs glossy
沒關係。
與固定它:
while(jumbles.ready())
{
jSorted.add(jumbles.readLine());
}
jumbles.close();
Collections.sort(jSorted);
for(int i = 0; i < jSorted.size(); i++)
{
String jWord = jSorted.get(i);
List<String>dWords= lookup.get(createKey(jWord));
String wordsString = Arrays.toString(dWords.toArray()).replace("[", "").replace("]", "").replace(",", "").trim();
if(dWords != null){
System.out.println(jWord + " " + wordsString);
}
}
使用TreeMap的,而不是HashMap中查收。 –
它看起來像您的輸入文件不是按字母順序排列,但您希望按字母順序處理這些單詞。讀取文件並創建一個'ArrayList',然後對'ArrayList'進行排序,然後處理文件中的單詞。 – ajb
@ CS_noob這不會幫助。這不是他想要排序的字典輸入。這個問題不是關於'HashMap',儘管標題。 – ajb