使用HashMap的values()方法返回的值转换为List时遇到错误


📢📢📢📣📣📣

哈喽!大家好,我是小小开发者,今天给大家分享一个在测试项目中遇到的问题,是Java中很基础的技术点,使用HashMap的values()方法转List遇到的问题。

✨个人博客:https://blog.csdn.net/weixin_43759352✨

✨公众号:【SimpleMemory】✨

❤️❤️❤️如果有对【后端技术】感兴趣的大佬们,欢迎关注!!!❤️❤️❤️

在项目实际开发过程中,常常遇到使用HashMap的values()方法返回List的场景;

常常看到下面使用强转的写法:

Map<Integer, String> map = new HashMap<>();
 map.put(1, "Apple");
 map.put(2, "Banana");
 map.put(3, "Orange");
 ArrayList<String> values =(ArrayList) map.values();
 System.out.println("values = " + values);

上面的写法经过运行发现,出现报错:

Exception in thread "main" java.lang.ClassCastException: java.util.HashMap$Values cannot be cast to java.util.ArrayList
	at com.simplememory.xxkfz.doc.HashMapToListExample.main(HashMapToListExample.java:19)

在Java中,如果你尝试将HashMap的values()方法返回的值转换为List时遇到错误,可能是因为类型不匹配。
HashMap的values()方法返回一个Collection类型的视图,该视图包含HashMap中所有的值。要将它转换为List,可以使用ArrayList的构造函数来创建一个新的ArrayList并将该视图作为参数传递进去。

正确的写法:

ArrayList<String> results = new ArrayList<>(map.values());

如果这篇【文章】对您有帮助,希望大家点赞、评论、关注、收藏;如果对【后端技术】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 公众号【SimpleMemory】❤️❤️❤️,将会继续给大家带来【收获与惊喜】💕💕!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小Java开发者

“是一种鼓励,你懂的”

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值