亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产盗摄视频一区二区三区| 国产乱码精品1区2区3区| 欧美成人国产一区二区| 国产99精品国产| 日韩和的一区二区| 国产精品久久久久婷婷二区次| 欧美猛男gaygay网站| 国产精品一区二区三区乱码| 亚洲国产综合91精品麻豆 | 国产亚洲综合av| 欧美日韩一级二级| 97久久精品人人做人人爽| 国产在线国偷精品免费看| 五月天亚洲精品| 亚洲欧洲在线观看av| 欧美国产国产综合| 日韩一区二区电影网| 91同城在线观看| 99麻豆久久久国产精品免费| 精品制服美女久久| 日产精品久久久久久久性色| 亚洲最色的网站| 专区另类欧美日韩| 国产午夜精品久久久久久久 | 国产精品视频麻豆| 精品久久久久一区二区国产| 欧美一级免费大片| 欧美日本一区二区| 欧美三级视频在线观看| 91极品美女在线| 色欧美88888久久久久久影院| 成人动漫视频在线| 成年人网站91| www.日韩大片| 99久久免费精品高清特色大片| 国产成人99久久亚洲综合精品| 激情文学综合插| 国产一区二区在线影院| 精品一区二区三区在线视频| 激情六月婷婷综合| 国产成人欧美日韩在线电影| 国产成人aaa| www.久久久久久久久| 一本色道久久综合亚洲aⅴ蜜桃 | 久久综合久久鬼色| 久久久蜜桃精品| 亚洲国产成人在线| 亚洲欧美激情在线| 亚洲福利国产精品| 日本不卡不码高清免费观看| 久久精品国产免费| 国产精品一区二区91| 国产ts人妖一区二区| 91丨porny丨首页| 欧美性一区二区| 91麻豆精品国产自产在线 | 亚洲午夜av在线| 日韩国产精品久久久久久亚洲| 久久99精品一区二区三区三区| 国产精品18久久久| 色婷婷一区二区三区四区| 欧美片网站yy| 久久久一区二区| 中文字幕日韩av资源站| 亚洲综合一二三区| 麻豆一区二区三| 成人av在线一区二区| 欧美性色黄大片| 精品久久久久一区| 日韩美女视频一区二区| 午夜精品福利在线| 国产v综合v亚洲欧| 欧美综合色免费| 2021久久国产精品不只是精品| 国产精品久久久久久久久免费桃花| 亚洲国产精品嫩草影院| 极品尤物av久久免费看| 色综合久久久久久久| 日韩视频中午一区| 国产精品久久久久久妇女6080| 亚洲成年人影院| 国产成人免费视频网站| 欧美午夜片在线观看| 久久久久久久综合狠狠综合| 一区二区不卡在线播放 | av在线播放成人| 91麻豆精品国产91久久久 | 99国内精品久久| 日韩精品中文字幕在线不卡尤物| 国产精品久久久久四虎| 麻豆视频观看网址久久| 色一区在线观看| 久久久久久影视| 天堂精品中文字幕在线| 成年人国产精品| 精品电影一区二区三区| 亚洲一区二区在线观看视频| 国产福利一区二区| 日韩视频一区二区三区 | 成人综合在线网站| 欧美一区二区三级| 一区二区三区日韩在线观看| 国精品**一区二区三区在线蜜桃| 欧美性xxxxxxxx| 中文字幕在线不卡一区二区三区| 奇米888四色在线精品| 在线免费亚洲电影| 国产精品热久久久久夜色精品三区| 青娱乐精品在线视频| 欧美这里有精品| 亚洲男人天堂av网| 国产福利一区二区三区视频在线| 欧美一级在线观看| 午夜精品久久一牛影视| 色狠狠综合天天综合综合| 国产精品色哟哟| 福利一区福利二区| 欧美成人一区二区三区片免费 | 国产aⅴ精品一区二区三区色成熟| 欧美疯狂做受xxxx富婆| 一级做a爱片久久| 91免费观看国产| 欧美韩国日本不卡| 国产成人亚洲综合a∨婷婷图片| 欧美岛国在线观看| 久久精品国产精品亚洲精品| 91精品国产全国免费观看| 亚洲一区二区欧美激情| 日韩一区二区三区av| 国产永久精品大片wwwapp| 国产精品日日摸夜夜摸av| 一本高清dvd不卡在线观看| 麻豆成人91精品二区三区| 成人av资源在线| 国产日产欧美精品一区二区三区| 蜜桃视频一区二区三区| 日韩欧美123| 韩国成人福利片在线播放| 欧美www视频| 国产尤物一区二区在线| 久久亚洲精华国产精华液 | 亚洲另类在线制服丝袜| 91久久精品国产91性色tv| 一区二区三区国产精品| 欧美性受极品xxxx喷水| 亚洲成人777| 日韩欧美国产电影| 国产综合久久久久久鬼色| 国产日韩欧美不卡在线| 99久久精品免费精品国产| 亚洲精品v日韩精品| 欧美午夜精品免费| 日本在线不卡一区| 久久亚洲精品小早川怜子| 成人精品一区二区三区中文字幕 | 欧美日韩在线不卡| av亚洲精华国产精华精| 91久久精品国产91性色tv | 一本色道久久综合亚洲91| 国产一区二区三区久久悠悠色av| 成人黄页在线观看| 26uuu精品一区二区在线观看| 欧美日韩一区二区在线观看| 欧美妇女性影城| 国产亚洲成aⅴ人片在线观看| 国产尤物一区二区| 中文字幕五月欧美| 欧美日韩亚洲另类| 国产麻豆视频一区| 亚洲免费高清视频在线| 日韩一区二区三区在线观看| 国产精品996| 亚洲国产综合91精品麻豆| 久久在线观看免费| 一本大道av一区二区在线播放| 亚洲国产成人tv| 久久久99免费| 国产福利精品一区| 91美女片黄在线观看91美女| 欧美片网站yy| 首页国产欧美日韩丝袜| 亚洲国产经典视频| 欧美久久久久中文字幕| 国产精品影音先锋| 亚洲国产精品欧美一二99| 久久久精品免费免费| 欧美日韩一区二区在线观看| 成人一区二区三区在线观看| 日本视频一区二区三区| 国产精品久久精品日日| 日韩一区二区免费电影| 94-欧美-setu| 国产剧情一区在线| 日韩高清在线一区| 亚洲区小说区图片区qvod| 久久久国际精品| 欧美一级欧美三级在线观看| 日本韩国欧美一区| 成人免费av资源| 国产一区二区三区免费|