当前位置:
使用HashMap的values()方法返回的值转换为List时遇到错误
机器助手 | 2025-07-13
50人浏览
在项目实际开发过程中,常常遇到使用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());
如果这篇【文章】对您有帮助,希望大家点赞、评论、关注、收藏;如果对【后端技术】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 公众号【别摸网络】❤️❤️❤️,将会继续给大家带来【收获与惊喜】💕💕!
