simpleset.java

来自「JDK1.4编译器前端」· Java 代码 · 共 81 行

JAVA
81
字号

package AST;
import java.util.HashSet;import java.util.LinkedHashSet;import java.io.FileNotFoundException;import java.io.File;import java.util.*;import beaver.*;import java.util.ArrayList;import java.util.zip.*;import java.io.*;// A persistent Setpublic interface SimpleSet {
    // Declared in DataStructures.jrag at line 13    int size();    // Declared in DataStructures.jrag at line 14    boolean isEmpty();    // Declared in DataStructures.jrag at line 15    SimpleSet add(Object o);    // Declared in DataStructures.jrag at line 16    Iterator iterator();    // Declared in DataStructures.jrag at line 17    boolean contains(Object o);    // Declared in DataStructures.jrag at line 18    SimpleSet emptySet = new SimpleSet() {      public int size() { return 0; }      public boolean isEmpty() { return true; }      public SimpleSet add(Object o) {        if(o instanceof SimpleSet)          return (SimpleSet)o;        return new SimpleSetImpl().add(o);      }      public boolean contains(Object o) { return false; }      public Iterator iterator() { return Collections.EMPTY_LIST.iterator(); }    };    // Declared in DataStructures.jrag at line 29    SimpleSet fullSet = new SimpleSet() {      public int size() { throw new Error("Operation size not supported on the full set"); }      public boolean isEmpty() { return false; }      public SimpleSet add(Object o) { return this; }      public boolean contains(Object o) { return true; }      public Iterator iterator() { throw new Error("Operation iterator not support on the full set"); }    };    // Declared in DataStructures.jrag at line 36    class SimpleSetImpl implements SimpleSet {      private HashSet internalSet;      public SimpleSetImpl() {        internalSet = new HashSet(4);      }      private SimpleSetImpl(SimpleSetImpl set) {        this.internalSet = new HashSet(set.internalSet);      }      public int size() {        return internalSet.size();      }      public boolean isEmpty() {        return internalSet.isEmpty();      }      public SimpleSet add(Object o) {        if(internalSet.contains(o)) return this;        SimpleSetImpl set = new SimpleSetImpl(this);        set.internalSet.add(o);        return set;      }      public Iterator iterator() {        return internalSet.iterator();      }      public boolean contains(Object o) {        return internalSet.contains(o);      }    }}

⌨️ 快捷键说明

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