|
最后,附上一个简化的List的实现,其实不见得非用ArrayList或者List不可,呵呵
[php]
// generic Liste
public class Liste<E> {
Element<E> kopf, fuss;
public Liste() {
kopf = fuss = null;
}
public void add(E e) {
if (kopf == null) {
kopf = fuss = new Element<E>(e);
} else {
fuss = fuss.nf = new Element<E>(e);
}
}
public synchronized boolean contains(E e) {
boolean ergebniss = false;
Element<E> ele = kopf;
while (ele != null) {
// vereinfacht !
if (ele.value == e || ele.value.equals(e)) {
ergebniss = true;
break;
} else {
ele = ele.nf;
}
}
return ergebniss;
}
public synchronized void remove(E e) {
if (kopf != null) {
if (kopf.value == e || kopf.value.equals(e)) {
if (kopf == fuss) {
kopf = fuss = null;
} else {
kopf = kopf.nf;
}
} else {
remove(kopf, kopf.nf, e);
}
}
}
private synchronized void remove(Element<E> fg, Element<E> ele, E e) {
if (ele != null) {
if (ele.value == e || ele.value.equals(e)) {
fg.nf = ele.nf;
ele.nf = null;
if (ele == fuss) {
fuss = fg;
}
} else {
remove(ele, ele.nf, e);
}
}
}
public synchronized E such(E e) {
Element<E> ele = kopf;
E ergebniss = null;
while (ele != null) {
if (ele.value == e || ele.value.equals(e)) {
ergebniss = ele.value;
break;
} else {
ele = ele.nf;
}
}
return ergebniss;
}
}
// generic Element
public class Element<E> {
E value;
Element<E> nf;
public Element(E value) {
this.value = value;
}
public Element(E value, Element<E> nf) {
this.value = value;
this.nf = nf;
}
}
[/php]
PS:个别单词非英语,不过不影响阅读,呵呵  |
|