?? interner.java
字號:
package edu.stanford.nlp.util;import java.util.*;/** * Interner: Class for interning things. * * It maps any object given to an interned version. If presented with a * new object which has no interned version, the presented object becomes * the interned version. * * Author: Dan Klein * Date: 1/3/01 * * @author Dan Klein */public final class Interner { private Map entries = new HashMap(); class InternerEntry { Internable i; public Internable entry() { return i; } public void setEntry(Internable i) { this.i = i; } public int hashCode() { return i.weakHashCode(); } public boolean equals(Object o) { //if (o instanceof InternerEntry) return i.weakEquals(((InternerEntry)o).i); //else //return i.weakEquals(o); } InternerEntry(Internable i) { this.i = i; } InternerEntry() { i = null; } } private transient InternerEntry tempEntry = new InternerEntry(); public Object intern(Internable o) { //if (o instanceof Internable) //InternerEntry e = new InternerEntry(o); tempEntry.setEntry(o); Object internedVersion = entries.get(tempEntry); if (internedVersion == null) { entries.put(tempEntry, tempEntry); internedVersion = tempEntry; tempEntry = new InternerEntry(); } //if (internedVersion instanceof InternerEntry) return ((InternerEntry)internedVersion).entry(); //return o; } /* public boolean contains(Object o) { if (o instanceof Internable) o = new InternerEntry((Internable)o); Object internedVersion = entries.get(o); if (internedVersion == null) return false; return true; } */}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -