广告
返回顶部
首页 > 资讯 > 精选 >Java之HashMap.values()转List时错误怎么解决
  • 848
分享到

Java之HashMap.values()转List时错误怎么解决

2023-07-05 14:07:18 848人浏览 安东尼
摘要

这篇文章主要介绍“Java之HashMap.values()转List时错误怎么解决”,在日常操作中,相信很多人在Java之HashMap.values()转List时错误怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

这篇文章主要介绍“Java之HashMap.values()转List时错误怎么解决”,在日常操作中,相信很多人在Java之HashMap.values()转List时错误怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java之HashMap.values()转List时错误怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

HashMap.values()转List时的错误和正确演示

因为项目中需要获取到Map的值的集合,所以调用了HashMap.values()方法转成List,当时是使用了以下代码。

(逻辑上这样想应该没问题,但生活总是会是不是给你一点小“”惊喜“”)

List<AreaitemOpt> areaItemOpts = (List<AreaItemOpt>) areaItemOptMap.values();return areaItemOpts;

怀着喜悦的心情在测试环境中运行之后,它报错了!

报错如下:

java.lang.ClassCastException: java.util.HashMap$Values cannot be cast to java.util.List

Java之HashMap.values()转List时错误怎么解决

错误原因

于是翻了一下values()方法的源码

public Collection<V> values() {      Collection<V> vs = values;      return (vs != null ? vs : (values = new Values()));  }

原来values()方法只是返回了一个Collection集合,可是如程序中的用法所示,在向下转型的时候出现了类型转换错误。

解决方法

在ArrayList中,有一个构造函数

public ArrayList(Collection<? extends E> c) {        elementData = c.toArray();        if ((size = elementData.length) != 0) {            // c.toArray might (incorrectly) not return Object[] (see 6260652)            if (elementData.getClass() != Object[].class)                elementData = Arrays.copyOf(elementData, size, Object[].class);        } else {            // replace with empty array.            this.elementData = EMPTY_ELEMENTDATA;        }    }

可以接受一个集合类型的参数,然后返回一个list;这样就达到了预期目的。

代码如下:

List<AreaItemOpt> areaItemOpts = new ArrayList<>(areaItemOptMap.values());return areaItemOpts;

测试通过~

Java之HashMap.values()转List时错误怎么解决

发现还有一种方法也可以解决这个问题:

 List<T> list=(List<T>) Arrays.asList(map.values().toArray());//先转数组再转list

Map的Value值转换为List集合

不多废话,直接看代码,有注解

public class Map转List {    public static void main(String[] args) {        //开辟空间        HashMap<Integer,String> hashMap = new HashMap<Integer,String>();        //存入数据        hashMap.put(1,"张三");        hashMap.put(2,"李四");        hashMap.put(3,"王五");        //使用Collection类型接收HashMap的Value值        Collection<String> collection = hashMap.values();        //把Collection对象作为参数传入ArrayList构造方法完成类型转换        ArrayList<String> arrayList = new ArrayList<String>(collection);        //输出测试        System.out.println(arrayList.toString());    }}

到此,关于“Java之HashMap.values()转List时错误怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Java之HashMap.values()转List时错误怎么解决

本文链接: https://www.lsjlt.com/news/352538.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java之HashMap.values()转List时错误怎么解决
    这篇文章主要介绍“Java之HashMap.values()转List时错误怎么解决”,在日常操作中,相信很多人在Java之HashMap.values()转List时错误怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-07-05
  • Java之HashMap.values()转List时的错误和正确演示
    目录HashMap.values()转List时的错误和正确演示错误原因解决方法Map的Value值转换为List集合总结HashMap.values()转List时的错误和正确演示...
    99+
    2023-03-22
    Java HashMap.values() HashMap.values()转List Java List
  • Java之使用HashMap.values()方法出错怎么解决
    本篇内容介绍了“Java之使用HashMap.values()方法出错怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HashMap....
    99+
    2023-07-05
  • java中HashMap.values()转为ArrayList()问题怎么解决
    这篇文章主要介绍了java中HashMap.values()转为ArrayList()问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中HashMap.values()转为ArrayList(...
    99+
    2023-07-05
  • Java的编译时错误和运行时错误问题怎么解决
    本篇内容介绍了“Java的编译时错误和运行时错误问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java编译时错误和运行时错误1....
    99+
    2023-07-05
  • vb运行时错误424怎么解决
    运行时错误424是VB中的一种常见错误,表示对象所需的属性或方法无法找到。以下是解决该错误的一些建议:1. 确保对象已正确地声明和实...
    99+
    2023-09-13
    vb
  • 连接mysql时2003错误怎么解决
    2003错误解决方法:1、检查MySQL服务器是否正在运行,通过检测服务器状态来确保MySQL服务器正在运行;2、检查MySQL服务器的端口号,默认情况下,MySQL服务器使用3306端口,如果没有输出结果,可以通过编辑MySQL配置文件来...
    99+
    2023-10-22
    mysql
  • 启动oracle时1053错误怎么解决
    发生1053错误时,可能是由于以下原因导致的:1. Oracle服务启动超时:在Windows中,服务启动默认有一个超时时间限制,如...
    99+
    2023-08-23
    oracle
  • Mysql时区错误问题怎么解决
    本文小编为大家详细介绍“Mysql时区错误问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql时区错误问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2022-10-19
  • java代码解析错误怎么解决
    当Java代码解析错误时,可以尝试以下几种解决方法: 仔细查看错误信息:首先要仔细阅读错误信息,确定错误的类型和位置。错误信息通...
    99+
    2023-10-26
    java
  • 更新playerunkowns时发生错误怎么解决
    本篇内容介绍了“更新playerunkowns时发生错误怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!有不少绝地求生的玩家反馈,他们...
    99+
    2023-06-06
  • Feign日期格式转换错误怎么解决
    本篇内容主要讲解“Feign日期格式转换错误怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Feign日期格式转换错误怎么解决”吧!出现的场景服务端通过springmvc写了一个对外的接口...
    99+
    2023-06-29
  • win7进行解析时遇到错误怎么解决
    要解决Windows 7解析错误,可以尝试以下几种方法: 清除DNS缓存:打开命令提示符,输入"ipconfig /flushd...
    99+
    2023-10-22
    win7
  • C++中linker在编译时错误怎么解决
    在C++中,链接错误通常是由于以下几个原因引起的: 未定义的符号:这通常是由于忘记包含相关的源文件或库文件导致的。解决方法是确保...
    99+
    2023-10-23
    C++
  • mysql5.7运行时出现3065错误怎么解决
    这篇文章主要讲解了“mysql5.7运行时出现3065错误怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql5.7运行时出现3065错误怎么解...
    99+
    2022-10-18
  • Dreamweaver启动时提示javascript错误怎么解决
    本篇内容主要讲解“Dreamweaver启动时提示javascript错误怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Dreamweaver启动时提示javascript错误怎么解决”...
    99+
    2023-06-08
  • Win10关机时出现Winlogon.exe错误怎么解决
    今天就跟大家聊聊有关Win10关机时出现Winlogon.exe错误怎么解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在win10系统进行关机时,出现Winlogon.exe错误...
    99+
    2023-06-28
  • Java中的StackOverflowError错误问题怎么解决
    这篇文章主要介绍了Java中的StackOverflowError错误问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中的StackOverflowError错误问题怎么解决文章都会有所收获,...
    99+
    2023-07-02
  • sqlyog连接Mysql时出现1251错误怎么解决
    本篇内容主要讲解“sqlyog连接Mysql时出现1251错误怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sqlyog连接Mysql时出现1251错误...
    99+
    2022-10-18
  • 安装编译mysql时出现错误怎么解决
    这篇文章主要讲解了“安装编译mysql时出现错误怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“安装编译mysql时出现错误怎么解决”吧!今天在安装编...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作