老师帮忙看一下,为什么移除key值会报错呀

来源:4-2 Map实现类—HashMap与LinkedHashMap的区别

王大力牛批

2022-10-25 01:13:11

public class HashMapSample {
    public static void main(String[] args) {
        HashMap<String,Object> student=new HashMap<>();//创建对象<key,value>
        student.put("name","王大力");//put()添加方法
        String name=(String) student.put("name","张达");
        System.out.println(name+"已被替换为张达");
        student.put("age","24");
        student.put("weigth","75");
        student.put("heigth","175");
        System.out.println(student);

        String n=(String) student.get("name");//get()获取指定key值
        System.out.println(n);

        Boolean k=student.containsKey("name");//containsKey判断key是否存在 返回值是布尔类型
        Boolean v=student.containsValue("name");//containsValue判断Value是否存在 返回值是布尔类型
        Boolean k1=student.containsKey("nam");//查询是否有这个key 返回值是布尔类型
        System.out.println(k);
        System.out.println(k1);

        Integer r= (Integer)student.remove("weigth");//remove 移除key值
        System.out.println("已经移除"+r);
    }
}

https://img.mukewang.com/climg/6356c70f09d6f6f112610204.jpg

写回答

1回答

好帮手慕小脸

2022-10-25

同学你好,根据上述异常信息得知:是因为类型转换错误,不能将String类型转化成Integer类型,这里同学可直接返回Object类型,或修改泛型为String,参考代码如下:

https://img.mukewang.com/climg/6357483e09595c0809130602.jpghttps://img.mukewang.com/climg/6357486209b2cbd608560551.jpg

祝学习愉快~

1

0 学习 · 9886 问题

查看课程