マップを印刷して、各印刷ステートメントのキーと値の両方を表示しようとしています。キーと値が重複しています。例えば:
key -> value
house -> dog
house -> cat
dog -> house
dog -> cat
cat -> house
cat -> bike
これは私のテキストファイルです:
house cat
house dog
house index
cat bike
cat house
cat index
dog house
dog cat
dog index
何らかの理由で、私のコードは実際の値ではなく文字列「index」を出力しています。私のコードはここにあります:
//adding values from a text file of two words per line.
//those two words per line in the text file are tab delimitted
public static Map<String, String> animals = new HashMap<String, String>();
BufferedReader in = new BufferedReader(new InputStreamReader("animals.txt"));
String current_line;
String[] splitted_strings = new String[1];
while ((current_line = in.readLine()) != null){
splitted_strings = current_line.split("\t");
animals.put(splitted_strings[0], splitted_strings[1]);
}
//print statement
for(Map.Entry entry : animals.entrySet())
System.out.println(entry.getValue() + " " + entry.getKey());
以下に示すコードからの単純なprintステートメントからの出力は次のようになります。
index cat
index house
index dog
上記のようなキーペアを維持するために、これらの値をデータ構造に追加するにはどうすればよいですか?どうすれば出力をこれにすることができますか?:
house cat
house dog
house index
cat bike
cat house
cat index
dog house
dog cat
dog index