You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中向HashMap存入字符串数组时出现异常显示问题

你的代码存在两个核心问题,解决方法如下:
  • 问题一:使用了不可变Map,元素根本没存入
    mapOf()创建的是只读不可变Map,不支持添加或修改元素。你写的map["key"] to array只是生成了一个Pair对象,完全没有把数据放进Map里。
    解决:改用mutableMapOf()创建可变Map,然后用map["key"] = array或者map.put("key", array)完成赋值。

  • 问题二:数组默认toString()输出内存地址
    就算元素正确存入Map,直接打印数组时,因为Kotlin/Java的数组没有重写toString()方法,默认会输出[Ljava.lang.String;@xxxx这种内存地址格式。
    解决:打印数组时调用它的contentToString()扩展方法(Kotlin专属),或者用Java的Arrays.toString()工具方法,就能输出[sport]这种正常的数组内容。

修正后的完整代码示例:

fun main() {
    // 创建可变Map
    val map = mutableMapOf<String, Array<String>>()
    val list = listOf("sport")
    val array = list.toTypedArray()
    // 正确添加元素到Map
    map["key"] = array
    
    // 正确打印数组内容
    println(map["key"]?.contentToString()) // 输出: [sport]
}

内容的提问来源于stack exchange,提问作者Денис Попков

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:00:28