老衲呢 2017-08-19 16:33 采纳率: 50%
浏览 1343
已结题

java 遍历hashmap出现的小问题

如题:代码如下,错误已标出

 package manegement;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

//增加员工信息
public class Add {

    //hashmap 存放员工信息
    HashMap hm = new HashMap<Integer, Object>();
    Employee emp = new Employee();

    InputStreamReader isr =  new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);

    String temp = new String();

    public void main() {
        AddEmp();
        System.out.println("通过Map.entrySet遍历key和value");
        /**
         * Type mismatch: cannot convert from element type Object to Map.Entry<String,String>
         * line:28
         */
        for (HashMap.Entry<String, String> entry : hm.entrySet()) {
            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
        }
    }

    public void AddEmp() {
        System.out.println("员工ID:");
        try {
            temp = br.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        emp.setEmpID(Integer.parseInt(temp));
        System.out.println("员工姓名:");
        try {
            temp = br.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        emp.setName(temp);
        System.out.println("员工工资:");
        try {
            temp = br.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        emp.setSalay(Float.parseFloat(temp));

        //添加员工信息到HashMap
        hm.put(emp.getEmpID(), emp);
    }
}

  • 写回答

2条回答 默认 最新

  • legendCoder 2017-08-20 01:23
    关注

    你定义hashmap的时候是HashMap(),而在向里面添加数据的时候,添加的是Employee对象,最后获取的时候你用的是
    HashMap.Entry。错误很明显,不能把你存储的employee对象用string去强制获取。要么在定义的时候将object换成employee,
    遍历的时候也改为HashMap.Entry,要么在遍历的时候用HashMap.Entry。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 镍氢电池充电器设计实物使用原理
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号