📄 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 + -