1. <var id="fe6gj"></var>

    <rp id="fe6gj"><nav id="fe6gj"></nav></rp>

    <noframes id="fe6gj"><cite id="fe6gj"></cite>

    <ins id="fe6gj"><button id="fe6gj"><p id="fe6gj"></p></button></ins>
    1. <tt id="fe6gj"><i id="fe6gj"><sub id="fe6gj"></sub></i></tt>
        始創于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        您的位置: 網站首頁 > 幫助中心>文章內容

        Java教程 8.4.2 BitSet

        發布時間:  2012/8/17 17:28:16

        BitSet 實際是由“二進制位”構成的一個Vector。如果希望高效率地保存大量“開-關”信息,就應使用
        BitSet。它只有從尺寸的角度看才有意義;如果希望的高效率的訪問,那么它的速度會比使用一些固有類型
        的數組慢一些。
        此外,BitSet 的最小長度是一個長整數(Long)的長度:64 位。這意味著假如我們準備保存比這更小的數
        據,如8 位數據,那么BitSet 就顯得浪費了。所以最好創建自己的類,用它容納自己的標志位。
        在一個普通的Vector 中,隨我們加入越來越多的元素,集合也會自我膨脹。在某種程度上,BitSet 也不例
        外。也就是說,它有時會自行擴展,有時則不然。而且Java 的1.0 版本似乎在這方面做得最糟,它的
        BitSet 表現十分差強人意(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);
        }
        } ///:~
        隨機數字生成器用于創建一個隨機的byte、short 和int。每一個都會轉換成BitSet 內相應的位模型。此時
        一切都很正常,因為BitSet 是64 位的,所以它們都不會造成最終尺寸的增大。但在Java 1.0 中,一旦


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

         



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

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

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

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

         
         
        av不卡不卡在线观看_最近2018年中文字幕_亚洲欧美一区二区三区_一级A爱做片免费观看国产_日韩在线中文天天更新_伊人中文无码在线