persistentset.java
来自「这个是perst-269.zip下面的SOURCECODE,和大家分享了。」· Java 代码 · 共 64 行
JAVA
64 行
package org.garret.perst.impl;
import org.garret.perst.*;
import java.util.*;
class PersistentSet<T extends IPersistent> extends Btree<T> implements IPersistentSet<T> {
PersistentSet() {
type = ClassDescriptor.tpObject;
unique = true;
}
public boolean isEmpty() {
return nElems == 0;
}
public boolean contains(Object o) {
if (o instanceof IPersistent) {
Key key = new Key((IPersistent)o);
Iterator i = iterator(key, key, ASCENT_ORDER);
return i.hasNext();
}
return false;
}
public Object[] toArray() {
return toPersistentArray();
}
public <E> E[] toArray(E[] arr) {
return (E[])super.toArray((T[])arr);
}
public boolean add(T obj) {
return put(new Key(obj), obj);
}
public boolean remove(Object o) {
T obj = (T)o;
return removeIfExists(new BtreeKey(checkKey(new Key(obj)), obj.getOid()));
}
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof Set)) {
return false;
}
Collection c = (Collection) o;
if (c.size() != size()) {
return false;
}
return containsAll(c);
}
public int hashCode() {
int h = 0;
Iterator i = iterator();
while (i.hasNext()) {
h += ((IPersistent)i.next()).getOid();
}
return h;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?