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

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

?? objtointmap.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 oqr * 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 objects to 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 ObjToIntMap implements Serializable{    static final long serialVersionUID = -1542220580748809402L;// Map implementation via hashtable,// follows "The Art of Computer Programming" by Donald E. Knuth// ObjToIntMap is a copy cat of ObjToIntMap with API adjusted to object keys    public static class Iterator {        Iterator(ObjToIntMap master) {            this.master = master;        }        final void init(Object[] keys, int[] values, int keyCount) {            this.keys = keys;            this.values = values;            this.cursor = -1;            this.remaining = keyCount;        }        public void start() {            master.initIterator(this);            next();        }        public boolean done() {            return remaining < 0;        }        public void next() {            if (remaining == -1) Kit.codeBug();            if (remaining == 0) {                remaining = -1;                cursor = -1;            }else {                for (++cursor; ; ++cursor) {                    Object key = keys[cursor];                    if (key != null && key != DELETED) {                        --remaining;                        break;                    }                }            }        }        public Object getKey() {            Object key = keys[cursor];            if (key == UniqueTag.NULL_VALUE) { key = null; }            return key;        }        public int getValue() {            return values[cursor];        }        public void setValue(int value) {            values[cursor] = value;        }        ObjToIntMap master;        private int cursor;        private int remaining;        private Object[] keys;        private int[] values;    }    public ObjToIntMap() {        this(4);    }    public ObjToIntMap(int keyCountHint) {        if (keyCountHint < 0) Kit.codeBug();        // Table grow when number of stored keys >= 3/4 of max capacity        int minimalCapacity = keyCountHint * 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(Object key) {        if (key == null) { key = UniqueTag.NULL_VALUE; }        return 0 <= findIndex(key);    }    /**     * Get integer value assigned with key.     * @return key integer value or defaultValue if key is absent     */    public int get(Object key, int defaultValue) {        if (key == null) { key = UniqueTag.NULL_VALUE; }        int index = findIndex(key);        if (0 <= index) {            return values[index];        }        return defaultValue;    }    /**     * Get integer value assigned with key.     * @return key integer value     * @throws RuntimeException if key does not exist     */    public int getExisting(Object key) {        if (key == null) { key = UniqueTag.NULL_VALUE; }        int index = findIndex(key);        if (0 <= index) {            return values[index];        }        // Key must exist        Kit.codeBug();        return 0;    }    public void put(Object key, int value) {        if (key == null) { key = UniqueTag.NULL_VALUE; }        int index = ensureIndex(key);        values[index] = value;    }    /**     * If table already contains a key that equals to keyArg, return that key     * while setting its value to zero, otherwise add keyArg with 0 value to     * the table and return it.     */    public Object intern(Object keyArg) {        boolean nullKey = false;        if (keyArg == null) {            nullKey = true;            keyArg = UniqueTag.NULL_VALUE;        }        int index = ensureIndex(keyArg);        values[index] = 0;        return (nullKey) ? null : keys[index];    }    public void remove(Object key) {        if (key == null) { key = UniqueTag.NULL_VALUE; }        int index = findIndex(key);        if (0 <= index) {            keys[index] = DELETED;            --keyCount;        }    }    public void clear() {        int i = keys.length;        while (i != 0) {            keys[--i] = null;        }        keyCount = 0;        occupiedCount = 0;    }    public Iterator newIterator() {        return new Iterator(this);    }    // The sole purpose of the method is to avoid accessing private fields    // from the Iterator inner class to workaround JDK 1.1 compiler bug which    // generates code triggering VerifierError on recent JVMs    final void initIterator(Iterator i) {        i.init(keys, values, keyCount);    }    /** Return array of present keys */    public Object[] getKeys() {        Object[] array = new Object[keyCount];        getKeys(array, 0);        return array;    }    public void getKeys(Object[] array, int offset) {        int count = keyCount;        for (int i = 0; count != 0; ++i) {            Object key = keys[i];            if (key != null && key != DELETED) {                if (key == UniqueTag.NULL_VALUE) { key = null; }                array[offset] = key;                ++offset;                --count;            }        }    }    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(Object key) {        if (keys != null) {            int hash = key.hashCode();            int fraction = hash * A;            int index = fraction >>> (32 - power);            Object test = keys[index];            if (test != null) {                int N = 1 << power;                if (test == key                    || (values[N + index] == hash && test.equals(key)))                {                    return index;                }                // Search in table after first failed attempt                int mask = N - 1;                int step = tableLookupStep(fraction, mask, power);                int n = 0;                for (;;) {                    if (check) {                        if (n >= occupiedCount) Kit.codeBug();                        ++n;                    }                    index = (index + step) & mask;                    test = keys[index];                    if (test == null) {                        break;                    }                    if (test == key                        || (values[N + index] == hash && test.equals(key)))                    {                        return index;                    }                }            }        }        return -1;    }// Insert key that is not present to table without deleted entries// and enough free space    private int insertNewKey(Object key, int hash) {        if (check && occupiedCount != keyCount) Kit.codeBug();        if (check && keyCount == 1 << power) Kit.codeBug();        int fraction = hash * A;        int index = fraction >>> (32 - power);        int N = 1 << power;        if (keys[index] != null) {            int mask = N - 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] != null);        }        keys[index] = key;        values[N + index] = hash;        ++occupiedCount;        ++keyCount;        return index;    }    private void rehashTable() {        if (keys == null) {            if (check && keyCount != 0) Kit.codeBug();            if (check && occupiedCount != 0) Kit.codeBug();            int N = 1 << power;            keys = new Object[N];            values = new int[2 * N];        }        else {            // 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;            Object[] oldKeys = keys;            int[] oldValues = values;            int oldN = oldKeys.length;            keys = new Object[N];            values = new int[2 * N];            int remaining = keyCount;            occupiedCount = keyCount = 0;            for (int i = 0; remaining != 0; ++i) {                Object key = oldKeys[i];                if (key != null && key != DELETED) {                    int keyHash = oldValues[oldN + i];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉超级流畅 | 欧美一区二区三区视频免费| 一区二区三区在线播放| 日本高清成人免费播放| 艳妇臀荡乳欲伦亚洲一区| 欧美日本一区二区三区四区 | 亚洲免费观看在线视频| 91福利在线播放| 午夜精品久久一牛影视| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲欧洲精品成人久久奇米网| 韩国成人在线视频| 国产精品久久三区| 欧美精品一二三四| 国产曰批免费观看久久久| 中文字幕一区二区三区av| 欧美日韩成人一区二区| 国内成+人亚洲+欧美+综合在线| 精品人伦一区二区色婷婷| 高清不卡在线观看| 亚洲综合网站在线观看| 精品美女一区二区三区| 91在线精品一区二区| 午夜欧美在线一二页| 久久久久综合网| 欧美日韩一卡二卡三卡| 国产精品中文欧美| 亚洲成人综合在线| 精品国产免费视频| 在线观看成人小视频| 免费成人美女在线观看| 亚洲日本护士毛茸茸| 精品国产91乱码一区二区三区 | 日韩一二在线观看| a4yy欧美一区二区三区| 日本亚洲欧美天堂免费| 中文字幕在线免费不卡| 日韩免费高清视频| 色国产精品一区在线观看| 国产麻豆一精品一av一免费| 亚洲一区二区三区国产| 中文字幕av资源一区| 精品噜噜噜噜久久久久久久久试看| 91玉足脚交白嫩脚丫在线播放| 六月婷婷色综合| 性久久久久久久久久久久| 国产精品欧美综合在线| 精品免费国产二区三区| 在线播放日韩导航| 日本精品一区二区三区高清 | 91在线看国产| 粉嫩欧美一区二区三区高清影视| 日本va欧美va欧美va精品| 亚洲区小说区图片区qvod| 日本一区二区三级电影在线观看| 91麻豆精品国产综合久久久久久| 色综合天天在线| 成av人片一区二区| 国产在线一区观看| 精品在线观看视频| 日韩av成人高清| 日韩精品色哟哟| 午夜电影网一区| 亚洲一二三四在线观看| 一区二区三区小说| 亚洲人成在线观看一区二区| 中文幕一区二区三区久久蜜桃| 久久久99久久精品欧美| 福利91精品一区二区三区| 国产精品乱人伦中文| 欧美三区在线观看| 国产麻豆视频一区二区| 亚洲另类在线视频| 日韩精品一区二区三区视频在线观看| 午夜精品一区二区三区三上悠亚| 久久久综合网站| 欧美色精品天天在线观看视频| 国产精品一区二区无线| 亚洲一区在线观看免费 | 欧美日韩另类一区| 成人高清在线视频| 国产又粗又猛又爽又黄91精品| 亚洲欧美乱综合| 亚洲国产你懂的| 久久午夜色播影院免费高清| 欧美日韩另类国产亚洲欧美一级| 男女男精品视频| 在线播放一区二区三区| 精品亚洲porn| 高清不卡在线观看| 国产亚洲欧美色| 亚洲一区欧美一区| 欧美放荡的少妇| 欧美成人福利视频| 久久久久久久综合色一本| 国产丝袜在线精品| 中文字幕日韩精品一区| 亚洲女人****多毛耸耸8| 亚洲国产一区视频| 久久国产成人午夜av影院| 国产激情精品久久久第一区二区 | 中文字幕不卡的av| 一区二区三区四区在线免费观看 | 亚洲高清视频中文字幕| 同产精品九九九| 精品一区免费av| 99久久精品国产一区二区三区| 欧美大片在线观看一区| 欧美高清激情brazzers| 2020国产精品久久精品美国| 欧美福利视频导航| 日韩精品一区二区三区视频播放 | 97久久超碰国产精品| 精品影视av免费| 蜜桃av噜噜一区| 日韩一级片网站| 亚洲午夜久久久| 蜜桃视频免费观看一区| 激情欧美日韩一区二区| yourporn久久国产精品| 欧美日韩国产成人在线免费| 欧美成人一区二区三区在线观看| 亚洲第一成年网| 国产精品美女久久久久久2018 | 亚洲国产一区二区在线播放| 久久国产精品免费| 色狠狠综合天天综合综合| 精品1区2区在线观看| 一区二区三区成人| 粉嫩久久99精品久久久久久夜| 制服丝袜中文字幕一区| 中文字幕欧美三区| 久久精品二区亚洲w码| 欧美伊人久久大香线蕉综合69 | 亚洲日本中文字幕区| 久久9热精品视频| 欧美三级日本三级少妇99| 国产精品久久久久久久久图文区 | 日韩一级完整毛片| 一区二区三区精密机械公司| 国产精品一品二品| 国产亚洲欧洲一区高清在线观看| 亚洲成av人片一区二区梦乃| 91蜜桃免费观看视频| 日本一区二区三级电影在线观看| 蜜臀a∨国产成人精品| 欧美精品自拍偷拍动漫精品| 亚洲美女电影在线| 丁香另类激情小说| 久久婷婷色综合| 蜜桃久久久久久久| 欧美精品第1页| 有坂深雪av一区二区精品| 成人一区在线观看| 中文字幕 久热精品 视频在线| 狠狠色丁香久久婷婷综合_中| 88在线观看91蜜桃国自产| 亚洲国产另类av| 欧美色区777第一页| 亚洲一区在线看| 欧美日韩在线观看一区二区| 亚洲国产精品麻豆| 在线影院国内精品| 亚洲国产乱码最新视频| 欧美日韩黄色一区二区| 亚洲成人在线网站| 欧美男人的天堂一二区| 日韩在线观看一区二区| 91超碰这里只有精品国产| 日韩av不卡在线观看| 日韩女优制服丝袜电影| 久久精品国产999大香线蕉| 欧美大胆一级视频| 国精产品一区一区三区mba桃花 | 91麻豆精品国产91久久久| 亚洲mv在线观看| 欧美一区二区女人| 久久99精品久久久久久国产越南 | 欧美一区二区视频网站| 美脚の诱脚舐め脚责91| 久久久久久亚洲综合影院红桃 | 狠狠v欧美v日韩v亚洲ⅴ| 国产视频一区不卡| 91碰在线视频| 五月综合激情网| 欧美成人a视频| 国产成人免费网站| 亚洲免费观看高清完整| 欧美日本韩国一区二区三区视频| 美女看a上一区| 国产欧美一二三区| 欧美中文字幕一二三区视频| 青青草97国产精品免费观看 | 五月激情丁香一区二区三区| 日韩你懂的在线播放| 丰满亚洲少妇av| 亚洲成人精品在线观看| 久久综合九色综合久久久精品综合 | 一区二区成人在线观看| 777久久久精品|