linkedlist的使用過程主要要注意下面幾點
1)linkedlis允許插入null節點
2)刪除元素最後基於迭代器操作,可以保障併發安全
3)使用Collections.sort方法對list排序時,在沒有比較器的情況下,元素必須非空且可排序,在有比較器的情況下,若比較器考慮了元素爲空的情況,則null元素可參與排序
4)可以使用linkedlist實現stack和queue的功能
package com.basic.util;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class BasicLinkedArrayList {
public static void main(String[] args) {
Stack<String> s = new Stack<String>();
s.push("1");
s.push("2");
s.push("3");
s.push(null);
// 獲取棧頂元素
System.out.println(s.peek());
queue<Integer> q = new queue<Integer>();
q.offer(1);
q.offer(2);
q.offer(3);
// 獲取隊列頭元素
System.out.println(q.peek());
List<Integer> list = new LinkedList<Integer>();
list.add(1);
list.add(3);
list.add(2);
list.add(3);
list.add(5);
// 列表排序
Collections.sort(list);
// 基於iter刪除元素,併發安全
Iterator<Integer> iter = list.iterator();
while (iter.hasNext()) {
Integer i = iter.next();
if (i.intValue() == 3) {
iter.remove();
}
}
}
}
class Stack<E> {
private final LinkedList<E> contains = new LinkedList<E>();
public boolean isEmpty() {
return this.contains.isEmpty();
}
public void push(E e) {
this.contains.addFirst(e);
}
public E pop() {
return this.contains.pollFirst();
}
public E peek() {
return this.contains.peekFirst();
}
}
class queue<E> {
private final LinkedList<E> contains = new LinkedList<E>();
public void offer(E e) {
this.contains.addFirst(e);
}
public E poll() {
return this.contains.pollLast();
}
public E peek() {
return this.contains.peekLast();
}
}