fromString方法中BitSet valueOf的用途是什么

时间:2018-05-23 06:50:13

标签: java api bitset

我很感激这条线的确切解释。

BitSet.valueOf(new long[] { Long.parseLong(s, 2) });

虽然FauxFaus发布的这个代码示例确实帮助我理解了BitSet的用法,但我找不到上述行的目的或原因。 这是完整的例子:

package com.tutorialspoint;
import java.util.*;
import java.util.BitSet;
public class TimeZoneDemo {
public static void main(String[] args) {
    BitSet bits1 = fromString("1000001");
    BitSet bits2 = fromString("1111111");
    System.out.println(toString(bits1)); // prints 1000001
    System.out.println(toString(bits2)); // prints 1111111

    bits2.and(bits1);

    System.out.println(toString(bits2)); // prints 1000001
}

private static BitSet fromString(final String s) {
    System.out.println(BitSet.valueOf(new long[] { Long.parseLong(s, 2) }));
    return BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
}
private static String toString(BitSet bs) {
    return Long.toString(bs.toLongArray()[0], 2);
}
}

请注意,我无法评论问OP的原始答案。

1 个答案:

答案 0 :(得分:3)

Long.parseLong(s, 2)String s解析为二进制String。生成的long放在long数组中并传递给BitSet.valueOf以生成BitSet,其位代表long值的位。

BitSet.valueOf使用long数组而不是单个long的原因是允许创建超过64位的BitSet