2014-10-30 38 views
0

我想使用「put」將元素添加到hashmap中。但該程序不想編譯。我收到錯誤信息「無法找到符號 - 可變電話簿」。該錯誤發生在「phoneBook.put(名稱,號碼);」。使用「put」將數據添加到Hashmap中

import java.util.HashMap; 

public class MapTester { 

    public void main(String args[]){ 

     HashMap<String, String> phoneBook = new HashMap<String, String>(); 
     phoneBook.put("Jenna Simpson", "3424 6785");  
    } 

    public void enterNumber (String name, String number) 
    { 
     phoneBook.put(name, number); 
    } 
} 
+4

電話簿的HashMap裏面是你的主要聲明,聲明它上面你的主類定義下 – Sybren 2014-10-30 18:14:38

+0

是電話簿在你的類的實例varibale? – 2014-10-30 18:14:39

+0

謝謝,將盡力回覆你。 – 2014-10-30 18:16:28

回答

0

我修改爲下面;它現在符合。感謝你們!

import java.util.HashMap; 


    public class MapTester{ 

     HashMap<String, String> phoneBook = new HashMap<String, String>(); 

     public void main(String args[]) 
     { 

      phoneBook.put("Jenna Simpson", "3424 6785"); 

     } 


     public void enterNumber (String name, String number) 
     { 
      phoneBook.put(name, number); 
     } 

    } 
0

phoneBook在enterNumber中無法觸及。它沒有可見性。將其作爲參數傳遞。

public void enterNumber (Map<String, String> phoneBook, String name, String number) 
{ 
    phoneBook.put(name, number); 
} 
+0

你能幫我解決這個問題:http://stackoverflow.com/questions/27824858/hashmap-key-to-value-associations/ – 2015-01-07 20:40:01

0

您必須聲明你上面的主類定義下的電話簿對象或通過電話簿作爲參數傳遞給enterNumber功能:

public void enterNumber (HashMap<String, String> phoneBook, String name, String number) { 
    ... 
    } 
0

這是因爲enterNumber沒有訪問變量的方法電話簿。

您必須聲明它作爲一個實例變量這樣

import java.util.HashMap; 

public class MapTester{ 

HashMap<String, String> phoneBook = new HashMap<String, String>(); 

public void main(String args[]){ 
    MapTester tester = new MapTester(); 
    tester.enterNumber("Jenna Simpson", "3424 6785"); 
} 

public void enterNumber (String name, String number) 
{ 
    phoneBook.put(name, number); 
} 
} 

你也需要創建類Maptester的對象。因爲你不能直接從main方法調用方法enterNumber,除非方法是靜態的。如果該方法聲明爲靜態,那麼該映射也應該是一個靜態變量。

+0

你能幫我解決這個問題:http:// stackoverflow。 COM /問題/ 27824858/HashMap的鍵到值的協會/ – 2015-01-07 20:40:24

0

花費一些時間來閱讀關於java中變量作用域的教程。 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

public class MapTester { 
private Map<String, String> phoneBook = new HashMap<String, String>(); 

public static void main(String[] args) { 
    MapTester tester = new MapTester(); 
    tester.enterNumber("Jenna Simpson", "3424 6785");  

} 

public void enterNumber (String name, String number) 
{ 
    phoneBook.put(name, number); 
} 

}