สร้าง Linked List แบบง่ายๆ ด้วย Generic Type
1 min readNov 6, 2019
package com.zengcode;
public class TestLinkedList {
static class LinkedList<X> {
X data;
LinkedList next = null;
public X getData() {
return data;
}
public void setData(X data) {
this.data = data;
}
public LinkedList getNext() {
return next;
}
public void setNext(LinkedList next) {
this.next = next;
}
}
public static void main(String[] args) {
LinkedList<Object> pointer = new LinkedList<Object>();
LinkedList<String> n1 = new LinkedList<String>();
n1.setData("hello");
LinkedList<Integer> n2 = new LinkedList<Integer>();
n2.setData(2);
LinkedList<Integer> n3 = new LinkedList<Integer>();
n3.setData(3);
pointer.setNext(n1);
n1.setNext(n2);
n2.setNext(n3);
while (pointer.next != null) {
pointer = pointer.getNext();
System.out.println(pointer.getData());
}
}
}
ผลที่ได้คือ
hello
2
3
จากโปรแกรมด้านบนเรามาทำ Circular Linked List ดูครับ
package com.ringzero.research.camel.router;
public class Test {
static class LinkedList<X> {
X data;
LinkedList next = null;
public X getData() {
return data;
}
public void setData(X data) {
this.data = data;
}
public LinkedList getNext() {
return next;
}
public void setNext(LinkedList next) {
this.next = next;
}
}
public static void main(String[] args) throws InterruptedException {
LinkedList<Object> pointer = new LinkedList<Object>();
LinkedList<String> n1 = new LinkedList<String>();
n1.setData("hello");
LinkedList<Integer> n2 = new LinkedList<Integer>();
n2.setData(2);
LinkedList<Integer> n3 = new LinkedList<Integer>();
n3.setData(3);
pointer.setNext(n1);
n1.setNext(n2);
n2.setNext(n3);
n3.setNext(n1);
while (pointer.next != null) {
pointer = pointer.getNext();
System.out.println(pointer.getData());
Thread.sleep(5000);
}
}
}
ไม่รู้ว่าง่ายไปป่าว แต่เอาไปประยุกต์ใช้ได้นะครับ