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

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


📢📢📢📣📣📣

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

>

✨公众号:【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】❤️❤️❤️,将会继续给大家带来【收获与惊喜】💕💕!

相关文章
|
10月前
|
前端开发 Java 测试技术
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
60 0
|
10月前
|
前端开发 数据库
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
312 1
使用 some , every ,和 Object.values 检查对象内的值
使用 some , every ,和 Object.values 检查对象内的值
176 0
使用 some , every ,和 Object.values 检查对象内的值
|
JSON 数据格式
Gson转换json数据为HashMap时long类型变为double问题解决
今天再使用Gson处理json数据的时候碰到了一个问题 , 当我使用如下代码解析json数据的时候 , requestTime就变为了double类型
387 0
|
C#
C#如何把List of Object转换成List of T具体类型
上周码程序的时候碰到个问题,因为设计上的约束,一个方法接受的参数只能为List类型,然而该方法需要处理的真实数据则是确定的List。然而C#不允许显示的直接转换类型,并且两个方向上都不可以操作。这个问题让我爆了一会儿,最后在MSDN上找到了一个OfType的拓展方法可以完成这件事。
1342 0
|
JavaScript
ES6对String字符串、Array数组、Number数字、Object对象 类型做了哪些升级优化
ES6对String字符串、Array数组、Number数字、Object对象 类型做了哪些升级优化
125 0
|
索引
使用tuple返回多个值
17.4编写并测试findbook函数 #include #include #include #include #include #include"Sales_data.h" using namespace std; typedef tuple matches; vecto...
709 0