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

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

將數據從雙數組傳輸到 HashMap

將數據從雙數組傳輸到 HashMap

瀟湘沐 2022-07-20 20:55:54
創建一個雙數組(一行用于州,一行用于國會大廈),我試圖在 for 循環中使用“map.put”將數組“key(states)”和“value(capitols)”保存到 HashMap . 在分配新的 HashMap (hMap = getInfo(); 后使用來自用戶輸入的鍵時,我的輸出返回“null”。我不太確定我做錯了什么,但我感覺我在 for環形。public class HashMapProgram {    public static void main (String[]args) {        Scanner input = new Scanner(System.in);        //Assign contents of map in getInfo to hMap        HashMap<String, String> hMap = getInfo();        //Prompting user to input a state (key)            System.out.print("Enter a state, or \"done\" when finished: ");            String state = input.next();        if(hMap.get(state) != "done")                System.out.println("The capital is "+ hMap.get(state));    }
查看完整描述

1 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

有幾個錯誤:


1)在你的 for 循環中,更改i < x.length;為i < x[0].length;,否則你只運行了 2 次循環。


2)不要使用比較字符串!=。改為使用equals()。有關更多詳細信息,請參閱此內容。


3)您沒有循環重復要求用戶輸入。將您的代碼更改main()為:


Scanner input = new Scanner(System.in);

HashMap<String, String> hMap = getInfo();

String state = "";

do {

    System.out.print("Enter a state, or \"done\" when finished: ");

    state = input.next();

    System.out.println("The capital is " + hMap.get(state));

} while (!state.equals("done")); 

4)使用接口,而不是類。所以改變


HashMap<String, String> hMap = getInfo();


Map<String, String> hMap = getInfo();

并更新方法簽名以返回Map<String, String>。


5)從Java 9開始,你可以像這樣直接創建一個地圖:


Map<String, String> m = Map.of(

        "Alabama", "Montgomery",

        "Alaska", "Juneau",

        "Arizona", "Phoenix"

        //and so on...

);


查看完整回答
反對 回復 2022-07-20
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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