小编Bra*_*ery的帖子

Java获取BitSet交集基数的最快方法

下面的函数需要两个BitSets,复制第一个(它不能被覆盖),将副本与第二个(按位AND)相交并返回结果的基数.

public int getIntersectionSize(BitSet bits1, BitSet bits2) {
    BitSet copy = (BitSet) bits1.clone();
    copy.and(bits2);
    return copy.cardinality();
}
Run Code Online (Sandbox Code Playgroud)

我对这段代码加速感兴趣吗?这个功能被称为十亿次,所以即使是微秒加速也是有道理的,而且我对最快的代码感到好奇.

java intersection cardinality bitset

6
推荐指数
1
解决办法
1108
查看次数

如何在Java8中迭代fastutil hashmap?

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

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

我怎样才能迭代(以尽可能最快的方式)Int2ObjectOpenHashMap

java iteration hashmap

6
推荐指数
1
解决办法
2852
查看次数

Java8中列表中的项目对的并行处理

在中Java8,让List<Item> list我按以下顺序进行处理:

ConcurrentMap<String, Integer> map = new ConcurrentHashMap<String, Integer>();
for (int i1 = 0; i1 < list.size() - 1; i1++) {
    Item item1 = list.get(i1);
    for (int i2 = i1 + 1; i2 < list.size(); i2++) {
        Item item2 = list.get(i2);
        doSomething(item1, item2);
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,我处理列表中所有有序的项目对(索引item1<的索引,<的索引item2)。现在,我想doSomething(item1, item2)为每个有序对并行运行函数。实现这一目标的最佳策略是什么?对最快的代码感兴趣。Java8流欢迎。

doSomething比如做:map.put(item1.key + " " + item2.key, item1.val + item2.val);

有序对的数量n * (n - 1) / 2,其中 …

java parallel-processing list java-8 java-stream

1
推荐指数
1
解决办法
1314
查看次数