linkedList在1.7后使用link数据结构实现,看着link.pre,link.next有点晕,就拿出来单独看了下link添加过程。
定义一个Link类,然后添加10个元素,打印查看link对象数据:
/**
* 模拟linkList添加元素操作
*/
public class LinkListDemo {
static Link<String> voidLink;
public static void main(String arg[]) {
//初始化Link对象
voidLink = new Link<String>(null, null, null);
voidLink.previous = voidLink;
voidLink.next = voidLink;
//模拟添加
for (int i = 0; i < 10; i++) {
addLastImpl("string" + i);
}
}
// LinkedList中addLastImpl方法
private static boolean addLastImpl(String object) {
Link<String> oldLast = voidLink.previous;
Link<String> newLink = new Link<String>(object, oldLast, voidLink);
voidLink.previous = newLink;
oldLast.next = newLink;
return true;
}
private static final class Link<ET> {
ET data;
Link<ET> previous, next;
Link(ET o, Link<ET> p, Link<ET> n) {
data = o;
previous = p;
next = n;
}
}
}
结果:
Link.previous值 :从string9-》string0
Link.next值:从string0-》string9