文档章节

Map数组初始化与赋值

终日乾乾
 终日乾乾
发布于 2015/09/18 19:47
字数 416
阅读 252
收藏 0

事情是这样的

我在后台存放一些示例数据,每个map都手动赋值再存到mapList里,随着数据量的增多,代码中出现了一串一串的超相似代码。map.put()由于要放不同的值也就算了,map初始化和mapList.add()真是难以容忍。

于是想到用map数组的方法。

Map<String,String>[] mapArray=new Map[n]; 

mapArray[i].put();

这样是可以编译通过的,可是运行时却出现了空指针异常。

原因是泛型具有类型的不确定性,而数组的定义必须确定其元素类型,所以泛型数组在初始化时会面临类型擦除的问题。

也就是对于编译器来说HashMap<Integer,Integer>和HashMap<String,String>是相同的。初始化并没有完成,所以出现了空指针异常。

那该如何办嘞?上网去查,原来大家都知道原因啊,但是没有人给出解决办法,什么不支持、无法编译、无法转化,什么这样不对要用mapList。哼!

还好我灵机一动,没有初始化,那就给它初始化被。

for(int i = 0; i < n; i++){

mapArray[i] = new HashMap<String,String>();

}

这样再进行赋值就没有问题了。

如果你仍需要List类型

List<Map<String,String>> mapList= Arrays.asList(mapArray);

我之所以没有还原成List方法而是仍然找Array的方法,因为既然编译通过了,那它一定可以变成可行方法,关键要看你的强大逻辑和神秘直觉。


© 著作权归作者所有

终日乾乾
粉丝 3
博文 10
码字总数 5822
作品 0
朝阳
前端工程师
私信 提问
Go语言入门——数组、切片和映射

Go语言入门——数组、切片和Map 按照以往开一些专题的风格,第一篇一般都是“从HelloWorld开始” 但是对于Go,思来想去,感觉真的从“HelloWorld”说起,压根撑不住一篇的篇幅,因为Go的Hel...

Jackie_Zheng
05/19
0
0
go语言定义变量/类型的方式

1、数组 2、切片 切片可以通过数组构建,这里不讨论这种方式 可以发现[]中有数字的是固定长度的数组,没有数字的表示切片 3、map // 先声明map var m1 map[string]string // 再使用make函数创...

tree2013
2016/10/23
17
0
array,slice,map,struct使用

array使用 声明 赋值 在已经声明前提下 声明+赋值 ---- slice使用 声明 赋值 声明+赋值 属性 len 表⽰示可⽤用元素数量,读写操作不能超过该限制 属性 cap 表⽰示最⼤扩张容量,不能超出数组...

爬墙
2017/03/05
26
0
UVA ~ 1596 ~ Bug Hunt (字符串处理 + map)

题意:输入并模拟执行一段程序,输出第一个BUG所在的行。每行程序有两种可能: 1.数组定义,格式为arr[size]。例如a[10]或者b[5],可用下标分别是0~9和0~4.定义之后所有元素均为未初始化状态...

ZscDst
2018/01/12
0
0
初识golang之数组,slice,map学习

数组: 定义方式:var arr [n]type,n表示数组的长度,type表示存储元素的类型。定义好后,可以使用arr[0] = 42,这样指定下标来进行数组的读取和赋值。 注意:在go中长度也是类型的一部分,...

宋和毅
2013/08/22
14.5K
4

没有更多内容

加载失败,请刷新页面

加载更多

java快递电子面单打印接口对接demo

之前的后天管理系统的电子面单打印使用的是灵通打单。 使用相对比较麻烦,需要到处Excel之后再导入,麻烦。 快递鸟有电子面单api,后台系统直接对接很是方便,不过也遇到了好些问题。 不难是...

程序的小猿
28分钟前
4
0
fasjtjson文档

https://github.com/alibaba/fastjson/wiki/JSONField

jirak
28分钟前
4
0
Mybatis中插入多条记录

Oracle数据库 实现方法 <insert id="saveWithdrawLog"> INSERT ALL INTO OSM_TRADE_DETAIL(SID,MBR_ID,USR_ID,TRADE_MONEY,TRADE_TYPE,TRADE_TIME,TRADE_WAY,PAY_ID) VALUES(#{si......

豫华商
29分钟前
5
0
Flink on YARN(下):常见问题与排查思路

作者:杨弢(搏远) Flink 支持 Standalone 独立部署和 YARN、Kubernetes、Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛。Flink 社区将推出 Flink on YARN 应用解读...

开源中国小二
31分钟前
4
0
技术沙龙|京东云端到端多媒体关键技术揭秘

编者按:从带来更高编码效率、更好的用户体验的京享高清,到直播架构与网络演进优化,从而为用户带来更流畅的观看体验,以及运维系统的异常自动修复和高弹性的多媒体存储架构,一层一层展示出...

京东云技术新知
31分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部