【问题标题】:what is the purpose of BitSet valueOf in fromString methodfromString 方法中 BitSet valueOf 的目的是什么
【发布时间】:2018-05-23 06:50:13
【问题描述】:

我希望能解释一下这条线的确切作用。

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 的原始答案发表评论。

【问题讨论】:

  • 何不看看documentation
  • 您到底是哪一部分难以理解?将其分解为更小的部分,并将您的问题集中在一个特定的问题上。

标签: java api bitset


【解决方案1】:

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

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

【讨论】:

  • 现在已经很清楚了,感谢帮助苦苦的初学者
猜你喜欢
  • 2013-05-28
  • 2016-02-04
  • 2022-12-24
  • 2014-04-25
  • 2010-09-07
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多