⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listbuffer.java

📁 GJC(Generic Java Compiler)编译器
💻 JAVA
字号:
/** * @(#)ListBuffer.java	1.15 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.tools.javac.v8.util;/** * A class for constructing lists by appending elements. Modelled after *  java.lang.StringBuffer. */public class ListBuffer {    /**     * The list of elements of this buffer.     */    public List elems;    /**     * A pointer pointing to the last, sentinel element of `elems'.     */    public List last;    /**     * The number of element in this buffer.     */    public int count;    /**     * Has a list been created from this buffer yet?     */    public boolean shared;    /**     * Create a new initially empty list buffer.     */    public ListBuffer() {        super();        this.elems = new List();        this.last = this.elems;        count = 0;        shared = false;    }    /**      * Return the number of elements in this buffer.      */    public int length() {        return count;    }    /**      * Is buffer empty?      */    public boolean isEmpty() {        return count == 0;    }    /**      * Is buffer not empty?      */    public boolean nonEmpty() {        return count != 0;    }    /**      * Copy list and sets last.      */    private void copy() {        List p = elems = new List(elems.head, elems.tail);        while (true) {            List tail = p.tail;            if (tail == null)                break;            p = p.tail = new List(tail.head, tail.tail);        }        last = p;        shared = false;    }    /**      * Prepend an element to buffer.      */    public ListBuffer prepend(Object x) {        elems = elems.prepend(x);        count++;        return this;    }    /**      * Append an element to buffer.      */    public ListBuffer append(Object x) {        if (shared)            copy();        last.head = x;        last.tail = new List();        last = last.tail;        count++;        return this;    }    /**      * Append all elements in a list to buffer.      */    public ListBuffer appendList(List xs) {        while (xs.nonEmpty()) {            append(xs.head);            xs = xs.tail;        }        return this;    }    /**      * Append all elements in an array to buffer.      */    public ListBuffer appendArray(Object[] xs) {        for (int i = 0; i < xs.length; i++) {            append(xs[i]);        }        return this;    }    /**      * Convert buffer to a list of all its elements.      */    public List toList() {        shared = true;        return elems;    }    /**      * Does the list contain the specified element?      */    public boolean contains(Object x) {        return elems.contains(x);    }    /**      * Convert buffer to an array      */    public Object[] toArray(Object[] vec) {        return elems.toArray(vec);    }    /**      * The first element in this buffer.      */    public Object first() {        return elems.head;    }    /**      * Remove the first element in this buffer.      */    public void remove() {        if (elems != last) {            elems = elems.tail;            count--;        }    }    /**      * Return first element in this buffer and remove      */    public Object next() {        Object x = elems.head;        remove();        return x;    }    /**      * An enumeration of all elements in this buffer.      */    public Enumeration elements() {        return new Enumerator(elems, last);    }    static class Enumerator implements Enumeration {        List elems;        List last;        Enumerator(List elems, List last) {            super();            this.elems = elems;            this.last = last;        }        public boolean hasMoreElements() {            return elems != last;        }        public Object nextElement() {            Object elem = elems.head;            elems = elems.tail;            return elem;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -