使用“put”将数据添加到Hashmap

时间:2014-10-30 18:12:07

标签: java hashmap

我想使用“put”将元素添加到hashmap中。但该程序不想编译。我收到错误消息“无法找到符号 - 可变phoneBook”。错误发生在“ phoneBook.put(name,number); ”。

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);
     }
}

5 个答案:

答案 0 :(得分:0)

电话簿在enterNumber中遥不可及。它没有可见性。将其作为参数传递。

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

答案 1 :(得分:0)

您必须在主要内容和类定义下面声明phoneBook对象,或者将phoneBook作为参数传递给enterNumber函数:

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

答案 2 :(得分:0)

这是因为方法enterNumber无法访问变量phoneBook。

您必须将其声明为此实例变量

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。如果方法声明为static,那么map也应该是一个静态变量。

答案 3 :(得分: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);
        }

    }

答案 4 :(得分: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);
}

}