Java BitSet允许简单的BitSet串联
我需要一个允许多个BitSet轻松连接的BitSet来创建一个新的BitSet。 默认实现没有这种方法。
在某些外部库中是否有任何一个实现可以让你们知道哪个允许简单的级联?
例如让我说我有一个bitarray 11111和另一个位阵列010101。我想要追加功能。 所以在连接后会导致11111010101。
那么没有办法实现这个非常有效的(性能和内存),因为没有左移方法。
你可以做的是使用明显的nextSetBit
for循环 - 速度慢,但内存有效。
大概更快的方法是使用toLongArray
,正确地移入一个足够大的数组中的副本,从中创建一个bitset,或者与另一个创建一个bitset。 这样你就不会在单个位上进行任何移位操作,而是会在单词块上工作。
这对我有效:
BitSet concatenate_vectors(BitSet vector_1_in, BitSet vector_2_in) {
BitSet vector_1_in_clone = (BitSet)vector_1_in.clone();
BitSet vector_2_in_clone = (BitSet)vector_2_in.clone();
int n = 5;//_desired length of the first (leading) vector
int index = -1;
while (index < (vector_2_in_clone.length() - 1)) {
index = vector_2_in_clone.nextSetBit((index + 1));
vector_1_in_clone.set((index + n));
}
return vector_1_in_clone;
}
结果:11111010101
链接地址: http://www.djcxy.com/p/59381.html