亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uintmap.java

?? 主要的怎么樣結合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Rhino code, released * May 6, 1999. * * The Initial Developer of the Original Code is Netscape * Communications Corporation.  Portions created by Netscape are * Copyright (C) 1997-2000 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * Igor Bukanov * * Alternatively, the contents of this file may be used under the * terms of the GNU Public License (the "GPL"), in which case the * provisions of the GPL are applicable instead of those above. * If you wish to allow use of your version of this file only * under the terms of the GPL and not to allow others to use your * version of this file under the NPL, indicate your decision by * deleting the provisions above and replace them with the notice * and other provisions required by the GPL.  If you do not delete * the provisions above, a recipient may use your version of this * file under either the NPL or the GPL. */package org.mozilla.javascript;import java.io.Serializable;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** * Map to associate non-negative integers to objects or integers. * The map does not synchronize any of its operation, so either use * it from a single thread or do own synchronization or perform all mutation * operations on one thread before passing the map to others. * * @author Igor Bukanov * */public class UintMap implements Serializable{    static final long serialVersionUID = 4242698212885848444L;// Map implementation via hashtable,// follows "The Art of Computer Programming" by Donald E. Knuth    public UintMap() {        this(4);    }    public UintMap(int initialCapacity) {        if (initialCapacity < 0) Kit.codeBug();        // Table grow when number of stored keys >= 3/4 of max capacity        int minimalCapacity = initialCapacity * 4 / 3;        int i;        for (i = 2; (1 << i) < minimalCapacity; ++i) { }        power = i;        if (check && power < 2) Kit.codeBug();    }    public boolean isEmpty() {        return keyCount == 0;    }    public int size() {        return keyCount;    }    public boolean has(int key) {        if (key < 0) Kit.codeBug();        return 0 <= findIndex(key);    }    /**     * Get object value assigned with key.     * @return key object value or null if key is absent     */    public Object getObject(int key) {        if (key < 0) Kit.codeBug();        if (values != null) {            int index = findIndex(key);            if (0 <= index) {                return values[index];            }        }        return null;    }    /**     * Get integer value assigned with key.     * @return key integer value or defaultValue if key is absent     */    public int getInt(int key, int defaultValue) {        if (key < 0) Kit.codeBug();        int index = findIndex(key);        if (0 <= index) {            if (ivaluesShift != 0) {                return keys[ivaluesShift + index];            }            return 0;        }        return defaultValue;    }    /**     * Get integer value assigned with key.     * @return key integer value or defaultValue if key does not exist or does     * not have int value     * @throws RuntimeException if key does not exist     */    public int getExistingInt(int key) {        if (key < 0) Kit.codeBug();        int index = findIndex(key);        if (0 <= index) {            if (ivaluesShift != 0) {                return keys[ivaluesShift + index];            }            return 0;        }        // Key must exist        Kit.codeBug();        return 0;    }    /**     * Set object value of the key.     * If key does not exist, also set its int value to 0.     */    public void put(int key, Object value) {        if (key < 0) Kit.codeBug();        int index = ensureIndex(key, false);        if (values == null) {            values = new Object[1 << power];        }        values[index] = value;    }    /**     * Set int value of the key.     * If key does not exist, also set its object value to null.     */    public void put(int key, int value) {        if (key < 0) Kit.codeBug();        int index = ensureIndex(key, true);        if (ivaluesShift == 0) {            int N = 1 << power;            // keys.length can be N * 2 after clear which set ivaluesShift to 0            if (keys.length != N * 2) {                int[] tmp = new int[N * 2];                System.arraycopy(keys, 0, tmp, 0, N);                keys = tmp;            }            ivaluesShift = N;        }        keys[ivaluesShift + index] = value;    }    public void remove(int key) {        if (key < 0) Kit.codeBug();        int index = findIndex(key);        if (0 <= index) {            keys[index] = DELETED;            --keyCount;            // Allow to GC value and make sure that new key with the deleted            // slot shall get proper default values            if (values != null) { values[index] = null; }            if (ivaluesShift != 0) { keys[ivaluesShift + index] = 0; }        }    }    public void clear() {        int N = 1 << power;        if (keys != null) {            for (int i = 0; i != N; ++i) {                keys[i] = EMPTY;            }            if (values != null) {                for (int i = 0; i != N; ++i) {                    values[i] = null;                }            }        }        ivaluesShift = 0;        keyCount = 0;        occupiedCount = 0;    }    /** Return array of present keys */    public int[] getKeys() {        int[] keys = this.keys;        int n = keyCount;        int[] result = new int[n];        for (int i = 0; n != 0; ++i) {            int entry = keys[i];            if (entry != EMPTY && entry != DELETED) {                result[--n] = entry;            }        }        return result;    }    private static int tableLookupStep(int fraction, int mask, int power) {        int shift = 32 - 2 * power;        if (shift >= 0) {            return ((fraction >>> shift) & mask) | 1;        }        else {            return (fraction & (mask >>> -shift)) | 1;        }    }    private int findIndex(int key) {        int[] keys = this.keys;        if (keys != null) {            int fraction = key * A;            int index = fraction >>> (32 - power);            int entry = keys[index];            if (entry == key) { return index; }            if (entry != EMPTY) {                // Search in table after first failed attempt                int mask = (1 << power) - 1;                int step = tableLookupStep(fraction, mask, power);                int n = 0;                do {                    if (check) {                        if (n >= occupiedCount) Kit.codeBug();                        ++n;                    }                    index = (index + step) & mask;                    entry = keys[index];                    if (entry == key) { return index; }                } while (entry != EMPTY);            }        }        return -1;    }// Insert key that is not present to table without deleted entries// and enough free space    private int insertNewKey(int key) {        if (check && occupiedCount != keyCount) Kit.codeBug();        if (check && keyCount == 1 << power) Kit.codeBug();        int[] keys = this.keys;        int fraction = key * A;        int index = fraction >>> (32 - power);        if (keys[index] != EMPTY) {            int mask = (1 << power) - 1;            int step = tableLookupStep(fraction, mask, power);            int firstIndex = index;            do {                if (check && keys[index] == DELETED) Kit.codeBug();                index = (index + step) & mask;                if (check && firstIndex == index) Kit.codeBug();            } while (keys[index] != EMPTY);        }        keys[index] = key;        ++occupiedCount;        ++keyCount;        return index;    }    private void rehashTable(boolean ensureIntSpace) {        if (keys != null) {            // Check if removing deleted entries would free enough space            if (keyCount * 2 >= occupiedCount) {                // Need to grow: less then half of deleted entries                ++power;            }        }        int N = 1 << power;        int[] old = keys;        int oldShift = ivaluesShift;        if (oldShift == 0 && !ensureIntSpace) {            keys = new int[N];        }        else {            ivaluesShift = N; keys = new int[N * 2];        }        for (int i = 0; i != N; ++i) { keys[i] = EMPTY; }        Object[] oldValues = values;        if (oldValues != null) { values = new Object[N]; }        int oldCount = keyCount;        occupiedCount = 0;        if (oldCount != 0) {            keyCount = 0;            for (int i = 0, remaining = oldCount; remaining != 0; ++i) {                int key = old[i];                if (key != EMPTY && key != DELETED) {                    int index = insertNewKey(key);                    if (oldValues != null) {                        values[index] = oldValues[i];                    }                    if (oldShift != 0) {                        keys[ivaluesShift + index] = old[oldShift + i];                    }                    --remaining;                }            }        }    }// Ensure key index creating one if necessary    private int ensureIndex(int key, boolean intType) {        int index = -1;        int firstDeleted = -1;        int[] keys = this.keys;        if (keys != null) {            int fraction = key * A;            index = fraction >>> (32 - power);            int entry = keys[index];            if (entry == key) { return index; }            if (entry != EMPTY) {                if (entry == DELETED) { firstDeleted = index; }                // Search in table after first failed attempt

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产视频| 在线观看国产日韩| 国产亚洲一区二区在线观看| 五月婷婷色综合| 欧美老肥妇做.爰bbww视频| 日一区二区三区| 精品欧美一区二区久久| 狠狠色伊人亚洲综合成人| 精品久久人人做人人爱| 大美女一区二区三区| 亚洲私人黄色宅男| 欧美日韩国产成人在线91| 三级一区在线视频先锋| 精品少妇一区二区三区日产乱码| 国产乱理伦片在线观看夜一区| 国产女主播视频一区二区| 91免费观看视频在线| 亚洲成人av一区二区| 精品久久久久香蕉网| 成人午夜碰碰视频| 亚洲国产精品一区二区www| 日韩欧美另类在线| 99国产精品久久| 午夜久久久久久电影| 26uuu国产电影一区二区| 色悠久久久久综合欧美99| 五月天久久比比资源色| 久久麻豆一区二区| 欧美色精品在线视频| 国产乱人伦偷精品视频不卡| 一区二区三区中文字幕| 欧美大胆人体bbbb| 91女人视频在线观看| 麻豆国产一区二区| 亚洲欧美一区二区三区极速播放 | 久久精品国产久精国产| 国产精品国产自产拍高清av王其| 欧美亚洲一区二区三区四区| 精品午夜久久福利影院| 一区二区在线免费观看| 久久久久久99久久久精品网站| 色婷婷一区二区三区四区| 极品少妇xxxx偷拍精品少妇| 亚洲乱码中文字幕| 国产午夜精品久久| 欧美一区二区三区播放老司机| 99久久精品国产麻豆演员表| 黑人精品欧美一区二区蜜桃| 亚洲va韩国va欧美va| 国产精品乱人伦| 欧美mv日韩mv国产网站| 欧美精品亚洲一区二区在线播放| 高清视频一区二区| 久久av老司机精品网站导航| 亚洲电影一区二区| 亚洲精品免费看| 国产精品色呦呦| 久久影音资源网| 精品剧情v国产在线观看在线| 欧美手机在线视频| 一本久久综合亚洲鲁鲁五月天| 国产成人免费视频一区| 精品一区二区三区av| 青青国产91久久久久久| 婷婷丁香激情综合| 亚洲国产精品综合小说图片区| 亚洲女人的天堂| 亚洲日本电影在线| 亚洲欧洲在线观看av| 国产欧美日韩不卡免费| 国产欧美一区二区精品忘忧草| 日韩午夜激情av| 日韩一区二区三区免费看 | 轻轻草成人在线| 日韩av中文在线观看| 午夜久久久久久久久| 日韩制服丝袜av| 青青草国产精品亚洲专区无| 欧美96一区二区免费视频| 日本美女视频一区二区| 男男成人高潮片免费网站| 日本午夜一本久久久综合| 日本免费新一区视频| 久久精品国产成人一区二区三区| 精品一区二区久久| 国产98色在线|日韩| caoporm超碰国产精品| 91看片淫黄大片一级在线观看| 91视视频在线直接观看在线看网页在线看 | 久久嫩草精品久久久精品一| 久久丝袜美腿综合| 国产精品乱人伦一区二区| 一区二区三区欧美在线观看| 亚洲影院理伦片| 秋霞电影一区二区| 国产99久久久精品| 色哟哟一区二区三区| 91.成人天堂一区| 欧美一区二区三区四区视频| 亚洲精品一区在线观看| 日本一区二区视频在线| 亚洲精品国产无套在线观| 日韩av中文字幕一区二区三区| 国产原创一区二区三区| 99riav久久精品riav| 欧美高清视频一二三区| 久久久久久日产精品| 亚洲人午夜精品天堂一二香蕉| 天天影视色香欲综合网老头| 国产综合色产在线精品| 99riav久久精品riav| 91麻豆精品91久久久久久清纯| www久久精品| 亚洲宅男天堂在线观看无病毒| 蜜桃久久精品一区二区| 北条麻妃国产九九精品视频| 欧美日韩国产乱码电影| 国产无人区一区二区三区| 一区二区三区四区在线播放| 免费观看成人鲁鲁鲁鲁鲁视频| 国产 日韩 欧美大片| 欧美在线免费观看亚洲| 久久精品一区四区| 亚洲第一精品在线| 大美女一区二区三区| 777xxx欧美| 亚洲欧美日韩国产一区二区三区| 日本va欧美va瓶| 在线亚洲欧美专区二区| 久久精品一区二区三区四区| 日日夜夜免费精品视频| 91色porny| 久久精品亚洲乱码伦伦中文| 婷婷综合另类小说色区| 91免费视频网| 国产日韩欧美a| 久久99精品国产.久久久久| 欧美亚洲综合久久| 自拍偷拍欧美激情| 国产成人综合在线观看| 日韩欧美www| 性做久久久久久久免费看| 91在线无精精品入口| 国产午夜亚洲精品羞羞网站| 蜜桃久久久久久| 69堂亚洲精品首页| 亚洲一卡二卡三卡四卡无卡久久| 成人小视频免费观看| 精品国产网站在线观看| 日韩av网站在线观看| 欧美性一区二区| 亚洲免费电影在线| 日本道色综合久久| 亚洲人妖av一区二区| 成人深夜视频在线观看| 久久久久国产精品麻豆ai换脸| 久久国产精品露脸对白| 91精品国产欧美一区二区成人 | 日韩美女视频一区二区在线观看| 亚洲成人久久影院| 欧美视频精品在线观看| 亚洲欧美日本在线| 色伊人久久综合中文字幕| 18涩涩午夜精品.www| av中文一区二区三区| 国产精品第一页第二页第三页| 成人午夜看片网址| 国产精品美女久久久久久久久久久| 国产精品1区二区.| 欧美激情综合五月色丁香小说| 国产久卡久卡久卡久卡视频精品| 精品国产制服丝袜高跟| 国产一区二区三区免费| 久久新电视剧免费观看| 国产成人8x视频一区二区| 欧美韩国日本一区| 99r国产精品| 亚洲成人久久影院| 欧美一区二区私人影院日本| 蜜臀久久99精品久久久久宅男 | 日韩三级精品电影久久久| 蜜臀久久久99精品久久久久久| 精品成人私密视频| 成人性生交大片免费看中文| 国产精品久久久久久久久快鸭 | 国产成人精品网址| 国产欧美日韩不卡免费| 色婷婷综合在线| 五月婷婷综合网| 精品久久一区二区三区| 北岛玲一区二区三区四区| 夜夜夜精品看看| 日韩精品一区二区三区在线| 国产高清亚洲一区| 亚洲精品国产无套在线观| 91精品国产色综合久久久蜜香臀| 国产成人一级电影| 一区二区三区日韩| 久久新电视剧免费观看| 91热门视频在线观看|