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 婆婆高寿祝福语大全简短