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 + -
显示快捷键?