亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java map.get() 方法返回 null

Java map.get() 方法返回 null

慕婉清6462132 2021-05-31 13:54:56
我正在創建一個程序,在其中我從 .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我不確定是什么問題。
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

您的問題出在 for 循環中,您希望將州和首都放入地圖中:

 usCapitals.put(usStates[y], uSCapitals[y]);

您有兩個選擇:

  1. 要么改變嘗試從地圖中獲取值的方式,而不是這樣做get("Montana"),而是搜索 state 作為鍵get("MT")

  2. 如果你想這樣做get("Montana"),那么你想翻轉鍵和值的順序,以使其成為可能。

然后你把地圖改成這樣:

 usCapitals.put(uSCapitals[y], usStates[y]);


查看完整回答
反對 回復 2021-06-02
  • 2 回答
  • 0 關注
  • 727 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號