一、概括
LinkedList与ArrayList一样,LinkedList也实现了List接口,诸如add,remove,contains等等方法,这些方法,已经在自己其他博客ArrayList常用方法中进行总结。除了实现了List接口外,LinkedList还实现了双向链表结构Deque,可以很方便的在头尾插入删除数据。
链表:与数组相比较,数组中元素的存储位置是连续的,而链表是不连续的,是通过指针将不连续的节点连起来。
二、LinkedList构造方法
1. public LinkedList(): ——生成空的链表
2. public LinkedList(Collection col): 复制构造函数
三、LinkedList常用方法操作
其中add方法与ArrayList中的add方法相似,也可以通过add(index,element)在指定位置加入
private static void LinkedListTest() {
LinkedList<User> ll=new LinkedList<User>();
ll.add(new User("士兵 1"));
ll.add(new User("士兵 2"));
System.out.println(ll);
// 在链表前面加入对象
ll.addFirst(new User("军官"));
//在链表后面加入对象
ll.addLast(new User("士兵 3"));
System.out.println(ll);
// 查看第一个
System.out.println(ll.getFirst());
// 查看最后一个
System.out.println(ll.getLast());
// 查看不会导致对象被删除
System.out.println(ll);
// 取出链表第一个对象
System.out.println(ll.removeFirst());
// 取出链表最后一个对象
System.out.println(ll.removeLast());
// 取出会导致对象被删除
System.out.println(ll);
}
四、使用LinkedList实现栈的效果
public static void main(String[] args) {
// LinkedListTest();
LinkedStackTest();
}
private static void LinkedStackTest() {
// TODO Auto-generated method stub
StackL stack = new StackL();
for (int i = 0; i < 10; i++) {
stack.push(new User("士兵 "+i));
}
System.out.println(stack.pop());
System.out.println(stack.top());
}
public class StackL {
private LinkedList list=new LinkedList();
public void push(Object v) {
list.addFirst(v);
}
public Object top() {
return list.getFirst();
}
public Object pop() {
return list.removeFirst();
}
}
五、使用LinkedList实现队列的效果
public class QueueL {
private LinkedList list = new LinkedList();
public void push(Object v) {
list.addFirst(v);
}
public Object top() {
return list.removeLast();
}
public boolean isEmpty() {
return list.isEmpty();
}
}
public static void main(String[] args) {
// LinkedListTest();
// LinkedStackTest();
LinkedQueueTest();
}
private static void LinkedQueueTest() {
QueueL queue = new QueueL();
for (int i = 0; i < 10; i++) {
queue.push((new User("士兵 "+i)));
}
if(!queue.isEmpty())
System.out.println(queue.top());
}
推荐学习网站
自学能力强的,可以通过这个网站去学习java,里面内容比较全面
https://how2j.cn/p/5984