我正在创建一个程序,在其中我从 .txt 文件中读取 50 个州及其首都。然后我运行一个 while 循环并将每个状态存储在一个 ArrayList 中,并将每个大写字母存储在另一个 ArrayList 中。我将这两个 ArrayList 转换为常规数组,然后运行 for 循环将每个状态存储为映射中的键,并将每个大写存储为映射中的值。我的问题是,当我使用 map.get() 方法返回特定状态的首都时,它只是返回“null”,我不确定为什么会这样。这是我的代码:
import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;
public class ChapterOneBasics {
public static void main(String[] args) throws FileNotFoundException {
Map<String, String> usCapitals = new HashMap<String, String>();
ArrayList<String> aList = new ArrayList<>();
ArrayList<String> bList = new ArrayList<>();
int x = 0;
File file = new File("C:\\Private\\Private\\Private\\capitals.txt");
Scanner sc = new Scanner(file);
while(sc.hasNextLine()) {
if(x % 2 == 0) {
aList.add(sc.nextLine());
}
else
bList.add(sc.nextLine());
x++;
}
String[] usStates = aList.toArray(new String[aList.size()]);
String[] uSCapitals = bList.toArray(new String[bList.size()]);
for(int y = 0; y < uSCapitals.length; y++) {
usCapitals.put(usStates[y], uSCapitals[y]);
}
System.out.println(usCapitals.get("Montana"));
}
}
如您所见,我已将每个州以字符串格式存储到 Map 中,但是每当我调用一个州来查找首都时,我都会将其作为输出:
null
我不确定是什么问题。
呼如林
相关分类