Java集合与原始价值
示例
Java中的集合仅适用于对象。即Map<int,int>在Java中没有。相反,需要将原始值装箱到对象中,如中所示Map<Integer,Integer>。Java自动装箱将实现这些集合的透明使用:
Map<Integer, Integer> map = new HashMap<>(); map.put(1, 17); //自动将int装箱为Integer对象 int a = map.get(1); //自动拆箱。
不幸的是,这的开销很大。AHashMap<Integer,Integer>将需要每个条目大约72个字节(例如,在具有压缩指针的64位JVM上,并假设整数大于256,并假设映射的负载为50%)。由于实际数据只有8个字节,因此会产生大量开销。此外,它需要两个级别的间接(映射->入口->值),这是不必要的缓慢。
有几个库具有针对原始数据类型的优化集合(在50%的负载下每个条目仅需要约16个字节,即,内存减少4倍,间接访问的级别减少),当使用大型原始数据集时,可以产生实质性的性能优势Java中的值。
热门推荐
10 班级群祝福语简短大全
11 长辈生日祝福语简短大全
12 祖国祝福语简短走心
13 关于旅游的简短祝福语
14 新年祝福语简短搞笑创意
15 升职祝福语简短霸气押韵
16 虎年春节拜年祝福语简短
17 圣诞贺卡祝福语简短高级
18 虎年幽默搞笑简短祝福语