バグがどこにあるのかわかりません。取得したのは、次の値を1行ずつ含む文字列の配列です。
San Jose -> San Francisco
San Jose -> Anchorage
New York -> Anchorage
New York -> San Jose
New York -> San Francisco
New York -> Honolulu
Anchorage -> New York
Anchorage -> San Jose
Honolulu -> New York
Honolulu -> San Francisco
Denver -> San Jose
San Francisco -> New York
San Francisco -> Honolulu
San Francisco -> Denver
右側の文字列をキーとして使用してこれらの値をHashMapに入れ、値をArrayListにします。これにより、「San Jose」の宛先を要求すると、リストを反復処理して「San」が返されます。フランシスコ」と「アンカレッジ」。Key-Value関係を正しく機能させることができませんでした。メソッドの実行が完了したときに発生します。どの都市でも、値は最後の反復の値になります。(サンフランシスコ)すべてのキーについてニューヨーク、ホノルル、デンバーを返します。
private void createDataBase()
{
ArrayList<String> tempValues = new ArrayList <String>();
for (int i = 0; i < database.size();i++)
{
String line = database.get(i);
//String value = "";
if (line.length() > 1)
{
int keyStart = 0;
int keyEnd = line.indexOf("-");
int valueStart = keyEnd+3;
int valueEnd = line.length();
String key = line.substring(keyStart, keyEnd);
String value = line.substring(valueStart, valueEnd);
tempValues.add(value);
System.out.println(keyValueDatabase.toString());
keyValueDatabase.put(key, tempValues);
}
else
{
tempValues.clear();
}
}
System.out.println(keyValueDatabase.toString());
}