用来记录实现一个简单的java链表
Link 类
public class Link<T>{
LinkNode<T> FRISTHEADER; // 链表的第一个头节点
LinkNode<T> HEADER = null; // 当前头节点
LinkNode<T> currentNode = null; // 当前节点
private int size; // 链表大小
public Link() {
}
// 向链表添加元素
public void add(T t){
LinkNode<T> node = new LinkNode<>();
size++;
node.setContent(t);
if(size==1){
FRISTHEADER = node;
HEADER = node;
currentNode = node;
}else{
currentNode.setNext(node);
node.setPrev(currentNode);
currentNode = node;
}
}
// 遍历到下一个节点
public void next(){
this.HEADER = this.HEADER.getNext();
}
// 获取指定索引处的节点的值
public void indexValue(int index){
this.HEADER = this.FRISTHEADER;
for (int i = 0; i < index; i++) {
this.HEADER = this.HEADER.getNext();
}
System.out.println(HEADER.getContent());
}
@Override
public String toString() {
this.HEADER = this.FRISTHEADER;
for (int i = 0; i < size; i++) {
System.out.println(this.HEADER.getContent());
this.next();
}
return "";
}
}
LinkNode节点
class LinkNode<T> {
private T content;
private LinkNode<T> next;
private LinkNode<T> prev;
public LinkNode() {
}
public T getContent() {
return content;
}
public void setContent(T content) {
this.content = content;
}
public LinkNode<T> getNext() {
return next;
}
public void setNext(LinkNode<T> next) {
this.next = next;
}
public LinkNode<T> getPrev() {
return prev;
}
public void setPrev(LinkNode<T> prev) {
this.prev = prev;
}
public LinkNode(T content, LinkNode<T> next, LinkNode<T> prev) {
this.content = content;
this.next = next;
this.prev = prev;
}
}
主入口
public class index {
public static void main(String[] args) {
Link<String> link = new Link<>();
link.add("张三");
link.add("李四");
link.add("王五");
link.add("赵六");
System.out.print(link);
System.out.println("--------------------------------------");
link.indexValue(3);
System.out.println("--------------------------------------");
link.add("赵七八");
System.out.print(link);
}
}
主要是用于记录 比较的粗糙,未实现全部功能