亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美成人a在线| 欧美精品日韩一本| 国产精品久久免费看| 91亚洲精华国产精华精华液| ...av二区三区久久精品| 色老汉一区二区三区| 丝袜亚洲精品中文字幕一区| 欧美成人综合网站| 在线精品视频一区二区| 国产精品一区一区三区| 亚洲电影一级片| 欧美激情中文字幕一区二区| 欧美日韩久久不卡| 91亚洲资源网| 成人av资源下载| 黑人精品欧美一区二区蜜桃| 亚洲444eee在线观看| 亚洲色图制服丝袜| 中文字幕国产一区二区| 久久综合久久综合久久综合| 91精品国产一区二区三区香蕉| 久久福利视频一区二区| 亚洲国产一区二区三区青草影视| 欧美激情在线看| 欧美刺激脚交jootjob| 欧美性做爰猛烈叫床潮| 成人激情校园春色| 国产成人av电影免费在线观看| 日本成人在线一区| 亚洲成人www| 亚洲一区二区四区蜜桃| 亚洲美女偷拍久久| 亚洲欧美综合另类在线卡通| 国产婷婷一区二区| 久久久噜噜噜久久中文字幕色伊伊 | 九色综合狠狠综合久久| 伊人夜夜躁av伊人久久| 亚洲丝袜精品丝袜在线| 中文字幕一区二区三区蜜月| 国产精品伦理在线| 中文字幕一区在线观看视频| 中文字幕一区二区三区av| 国产精品久久久久久久久动漫 | 欧美日韩综合一区| 欧美疯狂性受xxxxx喷水图片| 欧美三级视频在线播放| 欧美日韩久久一区二区| 正在播放一区二区| 日韩欧美在线不卡| 2017欧美狠狠色| 国产精品久久久久久久久动漫 | 欧美日韩国产小视频在线观看| 欧美日韩激情一区二区三区| 日韩一级高清毛片| 久久久国产午夜精品| 中文字幕在线观看一区二区| 亚洲精品成人在线| 亚洲成人免费观看| 国产一区二区三区高清播放| 不卡区在线中文字幕| 欧美性感一区二区三区| 欧美mv和日韩mv的网站| 国产河南妇女毛片精品久久久| 91色.com| 精品乱人伦小说| 中文字幕在线播放不卡一区| 亚洲成人资源网| a级精品国产片在线观看| 欧美日韩国产一区| 国产日韩欧美在线一区| 亚洲国产日日夜夜| 丁香六月综合激情| 这里只有精品99re| 亚洲精品视频免费观看| 日本美女视频一区二区| 色老头久久综合| 中文字幕不卡在线| 亚洲国产日产av| 在线视频观看一区| 精品少妇一区二区三区日产乱码 | 亚洲成人7777| 99在线精品一区二区三区| 777色狠狠一区二区三区| **欧美大码日韩| 国产一区二区影院| 欧洲亚洲国产日韩| 国产精品久线在线观看| 国产真实乱对白精彩久久| 欧美午夜精品一区| 亚洲美女偷拍久久| 成人动漫视频在线| 国产午夜精品美女毛片视频| 884aa四虎影成人精品一区| 亚洲一区二区视频在线| 在线视频欧美区| 亚洲人妖av一区二区| 国产成人一区二区精品非洲| 久久网站热最新地址| 韩国一区二区三区| 2024国产精品视频| 国产成人精品www牛牛影视| 久久综合九色综合欧美亚洲| 天天做天天摸天天爽国产一区| 欧美曰成人黄网| 亚洲精品日日夜夜| 欧美日韩视频第一区| 爽好久久久欧美精品| 91麻豆精品国产91久久久久久| 日日夜夜免费精品视频| 91精品国产综合久久久蜜臀粉嫩| 日韩影院精彩在线| 久久众筹精品私拍模特| 成人av资源在线观看| 一区二区三区四区激情| 欧美日本在线视频| 精品亚洲aⅴ乱码一区二区三区| 337p日本欧洲亚洲大胆精品| 国产精品88av| 亚洲精品ww久久久久久p站| 欧美一区二区视频网站| 国产成人亚洲综合a∨婷婷| 日韩毛片视频在线看| 欧美老女人在线| 国产在线看一区| 中文字幕亚洲在| 欧美日韩aaaaaa| 国产一区二区三区精品视频| 日本一区二区三区在线观看| 99久久久国产精品免费蜜臀| 亚洲一区二区三区在线播放| 日韩一区二区不卡| av一二三不卡影片| 麻豆国产一区二区| 国产精品色噜噜| 欧美精品九九99久久| 国精产品一区一区三区mba桃花| 一色屋精品亚洲香蕉网站| 欧美日韩国产乱码电影| 高清beeg欧美| 天天综合天天综合色| 国产精品久久一卡二卡| 日韩免费电影一区| 99精品视频在线免费观看| 精品一区二区三区影院在线午夜| 国产精品狼人久久影院观看方式| 7777精品久久久大香线蕉| 99视频一区二区三区| 人妖欧美一区二区| 亚洲美女免费视频| 国产日韩精品一区二区三区| 一区二区三区四区不卡在线| 久久综合久久综合九色| 欧美日韩小视频| av一二三不卡影片| 国产成人精品网址| 精品亚洲porn| 精品一区二区三区久久| 日韩精品久久久久久| 亚洲电影视频在线| 一区二区久久久久| 亚洲人成精品久久久久| 国产精品久久久久久久第一福利 | 国产精品77777| 免费看日韩精品| 日韩国产在线一| 日韩国产欧美三级| 免费国产亚洲视频| 久久国产精品露脸对白| 精品一区二区三区香蕉蜜桃| 麻豆91精品91久久久的内涵| 日韩高清中文字幕一区| 亚洲第一搞黄网站| 日本美女一区二区三区视频| 日韩高清欧美激情| 日韩主播视频在线| 免费观看30秒视频久久| 麻豆极品一区二区三区| 国产又粗又猛又爽又黄91精品| 国模冰冰炮一区二区| 懂色av一区二区在线播放| av日韩在线网站| 欧美三级韩国三级日本三斤| 欧美人妖巨大在线| 精品久久久久久久久久久久包黑料 | 欧美日韩欧美一区二区| 91精品一区二区三区在线观看| 精品国产91洋老外米糕| 亚洲国产精品精华液ab| 亚洲女人的天堂| 日韩高清在线不卡| 国产精品一二一区| 91女厕偷拍女厕偷拍高清| 91国偷自产一区二区三区观看| 欧美日韩国产电影| 久久影视一区二区| 一区二区三区小说| 国产福利91精品一区二区三区| av一区二区久久| 日韩欧美的一区二区| 一区二区三区.www|