📢📢📢📣📣📣哈喽!大家好,我是小小开发者,今天给大家分享一个在测试项目中遇到的问题,是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】❤️❤️❤️,将会继续给大家带来【收获与惊喜】💕💕!