使用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】❤️❤️❤️,将会继续给大家带来【收获与惊喜】!

你可能感兴趣的:(Java基础,java,HashMap转List)