激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

        Java教程 8.4.2 BitSet

        發(fā)布時間:  2012/8/17 17:28:16

        BitSet 實際是由“二進制位”構(gòu)成的一個Vector。如果希望高效率地保存大量“開-關(guān)”信息,就應使用
        BitSet。它只有從尺寸的角度看才有意義;如果希望的高效率的訪問,那么它的速度會比使用一些固有類型
        的數(shù)組慢一些。
        此外,BitSet 的最小長度是一個長整數(shù)(Long)的長度:64 位。這意味著假如我們準備保存比這更小的數(shù)
        據(jù),如8 位數(shù)據(jù),那么BitSet 就顯得浪費了。所以最好創(chuàng)建自己的類,用它容納自己的標志位。
        在一個普通的Vector 中,隨我們加入越來越多的元素,集合也會自我膨脹。在某種程度上,BitSet 也不例
        外。也就是說,它有時會自行擴展,有時則不然。而且Java 的1.0 版本似乎在這方面做得最糟,它的
        BitSet 表現(xiàn)十分差強人意(Java1.1 已改正了這個問題)。下面這個例子展示了BitSet 是如何運作的,同時


        演示了1.0 版本的錯誤:
        //: Bits.java
        // Demonstration of BitSet
        import java.util.*;
        public class Bits {
        public static void main(String[] args) {
        Random rand = new Random();
        // Take the LSB of nextInt():
        byte bt = (byte)rand.nextInt();
        BitSet bb = new BitSet();
        for(int i = 7; i >=0; i--)
        if(((1 << i) & bt) != 0)
        bb.set(i);
        else
        bb.clear(i);
        System.out.println("byte value: " + bt);
        printBitSet(bb);
        short st = (short)rand.nextInt();
        BitSet bs = new BitSet();
        for(int i = 15; i >=0; i--)
        if(((1 << i) & st) != 0)
        bs.set(i);
        else
        bs.clear(i);
        System.out.println("short value: " + st);
        printBitSet(bs);
        int it = rand.nextInt();
        BitSet bi = new BitSet();
        for(int i = 31; i >=0; i--)
        if(((1 << i) & it) != 0)
        bi.set(i); 
        else
        bi.clear(i);
        System.out.println("int value: " + it);
        printBitSet(bi);
        // Test bitsets >= 64 bits:
        BitSet b127 = new BitSet();
        b127.set(127);

         

        System.out.println("set bit 127: " + b127);
        BitSet b255 = new BitSet(65);
        b255.set(255);
        System.out.println("set bit 255: " + b255);
        BitSet b1023 = new BitSet(512);
        // Without the following, an exception is thrown
        // in the Java 1.0 implementation of BitSet:
        // b1023.set(1023);
        b1023.set(1024);
        System.out.println("set bit 1023: " + b1023);
        }
        static void printBitSet(BitSet b) {
        System.out.println("bits: " + b);
        String bbits = new String();
        for(int j = 0; j < b.size() ; j++)
        bbits += (b.get(j) ? "1" : "0");
        System.out.println("bit pattern: " + bbits);
        }
        } ///:~
        隨機數(shù)字生成器用于創(chuàng)建一個隨機的byte、short 和int。每一個都會轉(zhuǎn)換成BitSet 內(nèi)相應的位模型。此時
        一切都很正常,因為BitSet 是64 位的,所以它們都不會造成最終尺寸的增大。但在Java 1.0 中,一旦


        BitSet 大于64 位,就會出現(xiàn)一些令人迷惑不解的行為。假如我們設(shè)置一個只比BitSet 當前分配存儲空間大
        出1 的一個位,它能夠正常地擴展。但一旦試圖在更高的位置設(shè)置位,同時不先接觸邊界,就會得到一個惱
        人的違例。這正是由于BitSet 在Java 1.0 里不能正確擴展造成的。本例創(chuàng)建了一個512 位的BitSet。構(gòu)建
        器分配的存儲空間是位數(shù)的兩倍。所以假如設(shè)置位1024 或更高的位,同時沒有先設(shè)置位1023,就會在Java
        1.0 里得到一個違例。但幸運的是,這個問題已在Java 1.1 得到了改正。所以如果是為Java 1.0 寫代碼,
        請盡量避免使用BitSet。

         



        本文出自:億恩科技【mszdt.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營性ICP/ISP證:贛B2-20080012
      9. 服務器/云主機 24小時售后服務電話:0371-60135900
      10. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      11. 專注服務器托管17年
        掃掃關(guān)注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線