我创建了一个 HashMap 来存储一个包含信息列的文本文件。我将键与特定名称进行了比较,并将 HashMap 的值存储到 ArrayList 中。当我尝试使用println
我的 ArrayList 时,它只输出最后一个值并忽略与该键匹配的所有其他值。
这不是我的全部代码,只是我在文本文件中读取的两个循环,存储到 HashMap 中,然后存储到 ArrayList 中。我知道这与我的循环有关。
进行了一些编辑并将其输出,但我的所有值都显示了多次。
我的输出看起来像这样。
北美:[安圭拉、安圭拉、安提瓜和巴布达、安提瓜和巴布达、安提瓜和巴布达、阿鲁巴、阿鲁巴、阿鲁巴、
HashMap<String, String> both = new HashMap<String, String>();
ArrayList<String> sort = new ArrayList<String>();
//ArrayList<String> sort2 = new ArrayList<String>();
// We need a try catch block so we can handle any potential IO errors
try {
try {
inputStream = new BufferedReader(new FileReader(filePath));
String lineContent = null;
// Loop will iterate over each line within the file.
// It will stop when no new lines are found.
while ((lineContent = inputStream.readLine()) != null) {
String column[]= lineContent.split(",");
both.put(column[0], column[1]);
Set set = both.entrySet();
//Get an iterator
Iterator i = set.iterator();
// Display elements
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
if(me.getKey().equals("North America"))
{
String value= (String) me.getValue();
sort.add(value);
}
}
}
System.out.println("North America:");
System.out.println(sort);
System.out.println("\n");
}