gpt4 book ai didi

java - 如何在 Java8 中迭代 fastutil hashmap?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:10:03 26 4
gpt4 key购买 nike

Java8 ,想比较Int2ObjectOpenHashMap的时间性能和内存消耗(fastutil 库)和 HashMap<Integer, MyObj>在我的应用程序中。以前我迭代 java 标准 hashmap 如下:

HashMap<Integer, MyObj> myobjs = new HashMap<Integer, MyObj>();
// fill myobjs in
for (Map.Entry<Integer, MyObj> obj : myobjs.entrySet()) {
...
}

如何(以最快的方式)迭代 Int2ObjectOpenHashMap

最佳答案

有专门的fastForEach()在条目集上,为了获得额外的性能,而不是为每个循环周期重新创建一个条目实例,重用类型为 Int2ObjectMap.Entry<MyObj> 的条目实例。 :

Int2ObjectOpenHashMap<MyObj> int2ObjHashMap = ...;
int2ObjHashMap.int2ObjectEntrySet().fastForEach((Int2ObjectMap.Entry<MyObj> entry) -> {
int key = entry.getIntKey();
MyObj value = entry.getValue();
// ...
});

通过使用特定于 int 的方法 int2ObjectEntrySet()getIntKey()而不是 entrySet()getKey() , 此代码还避免了条目键到/从 int 的不必要的收件箱和发件箱和 Integer .

关于java - 如何在 Java8 中迭代 fastutil hashmap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32169192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com