使用hashmap的java字典
我写了一个小电话簿只是为了练习我的java知识。 问题在于下面的代码中,我希望代码在调用getname方法时显示名称和号码。我是一个初学者,我真的希望使这个项目的工作使用hashmap的java字典,java,hashmap,set,Java,Hashmap,Set,我写了一个小电话簿只是为了练习我的java知识。 问题在于下面的代码中,我希望代码在调用getname方法时显示名称和号码。我是一个初学者,我真的希望使这个项目的工作 public class Phone { private HashMap<String, Integer> name; HashMap<String, Integer> namelist = new HashMap<String, Integer>(); Integer
public class Phone {
private HashMap<String, Integer> name;
HashMap<String, Integer> namelist = new HashMap<String, Integer>();
Integer number;
String names;
/**
* @return the name
*/
Phone() {
// get user to enter name and number
Scanner scan = new Scanner(System.in);
System.out.println("enter name ");
names = scan.nextLine();
System.out.println("enter number ");
String nums = scan.nextLine();
number = Integer.parseInt(nums);
namelist.put(names, number); // set key and value to namelist object;
setName(namelist); //
}
void printValue() {
System.out.print(namelist.get(names));
}
public HashMap<String, Integer> getName() {
return name;
}
/**
* @param names
* the name to set
*/
public void setName(HashMap<String, Integer> names) {
this.name = names;
}
public static void main(String[] args) {
Phone ph = new Phone();
Gui window = new Gui();
System.out.println(ph.getName());
ph.printValue();
}
}
公共类电话{
私有HashMap名称;
HashMap namelist=新的HashMap();
整数;
字符串名;
/**
*@返回名称
*/
电话(){
//让用户输入名称和编号
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入名称”);
name=scan.nextLine();
System.out.println(“输入编号”);
字符串nums=scan.nextLine();
number=Integer.parseInt(nums);
namelist.put(names,number);//设置namelist对象的键和值;
设置名称(名称列表)//
}
void printValue(){
System.out.print(namelist.get(names));
}
公共HashMap getName(){
返回名称;
}
/**
*@param名称
*要设置的名称
*/
public void setName(HashMap名称){
this.name=名称;
}
公共静态void main(字符串[]args){
电话ph=新电话();
Gui窗口=新建Gui();
System.out.println(ph.getName());
printValue()博士;
}
}
您的getName()
方法应该返回字符串,而不是HashMap;在返回名称和数字之前,需要将它们连接起来,例如,返回名称+“;”+Integer.toString(数字)代码>我假设通过说“显示姓名和号码”,您希望显示手机中存储的所有联系人。因此,这个问题看起来像是如何打印hashmap中的所有元素
for(String name : map.keySet()){
System.out.println("name is " + name);
System.out.println("contact is " + map.get(name));}
这里有一个更简单的答案:
System.out.println(map);
这将调用Map上的toString()方法,该方法调用键和值的toString()方法,该实现报告键/值配对如下:
“乔”->“123456789”
唯一需要注意的是,默认情况下不会在元素之间放置换行符。如果您想这样做,您可以:
for(Map.Entry<String,Integer> entry: map.Entry())
system.out.println(entry);
for(Map.Entry:Map.Entry())
系统输出打印项次(输入);
为什么需要2个哈希映射?您有一些基本问题。Phone()
构造函数应该只初始化Phone
对象。在main()
中的循环中,可能会添加名称/编号对getName()
应以您要查找的名称为参数,并返回相应的电话号码。您的类应命名为PhoneDirectory,包含一组PhoneEntry类,定义为类Person的一个实例和:a字符串