运用BitSet类来处理一系列选项 

分类: J2SE   出处:iocblog整理  更新时间:2008-07-29   添加到收藏  


  如果你想仿效c的编程风格在一个单独变量中存储许多布尔变量值的话,使用java.util.bitset类要比把它们编译成一个初始的’long’型变量更好。
  
  bitset类以简练和低内存消耗的方式处理一系列的选项是有益的。它提供了将n个位存进一个普通对象的方法。类本身必须决定应该使用多少内存并且何时改变策略。所有的开发人员都不得不为该设置哪个位而担心。位直到设置后才自动关闭。
  
  这是如何创建一个bitset:
  
  //for the value ‘01001’
  
  
  bitset bits=new bitset();
  
  bits.set(1);
  [来源www.iocblog.net]
  bits.set(4);
  使用tostring方法可能会自动输出一个bitset。输出的数据会类似于以下这样:
  
  {1,4}
  
  你也可以使用一种以二进制表示输出的方法,例如:
  
  static public string output(bitset bits) {
  
  int size=bits.length();
  
  stringbuffer buffer=new stringbuffer();
  
  for (int i=0; i  
   buffer.append((bits.get(1))?”1”:”0”);
  
  }
  
  return buffer.tostring();
  
  }
  胜于输出‘{1,4}’,上面的例子会输出‘01001’。
  
  bitsets 通过布尔代数方法and,xor,和andnot合并到一起。比如,10001 and 00001会返回10000。
  
  size() 方法返回当前正在使用中的空间的位数量而不是在一个bitset中的位的数量。然而,length()方法直到最高的”true”值加一才返回位的个数。这可以引起一个和output(bitset)方法有关的问题―“10001 andnot 00001” 会等于”1”因为更高位的0不会被显示出来。
  
  [来源www.iocblog.net]


Tag: BitSet



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。