集合框架 LinkedList
1.双向链表 - Deque
除了实现了List接口外,LinkedList还实现了双向链表结构Deque,可以很方便的在头尾插入删除数据
什么是链表结构: 与数组结构相比较,数组结构,就好像是电影院,每个位置都有标示,每个位置之间的间隔都是一样的。 而链表就相当于佛珠,每个珠子,只连接前一个和后一个,不用关心除此之外的其他佛珠在哪里。
package LinkedList;
import java.util.LinkedList;
public class code01 {
public static void main(String args[]){
LinkedList<Integer> number=new LinkedList<Integer>();
//在尾部插入元素
number.addLast(1);
number.addLast(2);
System.out.println(number);
//在头部插入元素
number.addFirst(0);
System.out.println(number);
//查看最前面的元素
System.out.println(number.getFirst());
//查看最后面的元素
System.out.println(number.getLast());
//取出最前面的元素 会导致元素被删除
System.out.println(number.removeFirst());
//取出最后面的元素 会导致元素被删除
System.out.println(number.removeLast());
System.out.println(number);
}
}
2. 队列 - Queue
LinkedList 除了实现了List和Deque外,还实现了Queue接口(队列)。
Queue是先进先出队列 FIFO,常用方法:
offer 在最后添加元素
poll 取出第一个元素
peek 查看第一个元素
package LinkedList;
import java.util.LinkedList;
import java.util.Queue;
public class code02 {
public static void main(String args[]) {
//LinkedList实现了Queue接口 Queue是队列
Queue<Integer> queue = new LinkedList<Integer>();
//加在队列的最后面
queue.offer(1);
queue.offer(2);
System.out.println("queue:" + queue);
//取出第一个元素 会删除元素
System.out.println("首个元素" + queue.poll());
System.out.println("取出后:" + queue);
//查看第一个元素 不会取出
System.out.println("首个元素:" + queue.peek());
System.out.println("查看后:" + queue);
}
}
运行结果
3.练习 LinkedList实现Stack(栈)
package LinkedList;
import java.util.LinkedList;
import java.util.Stack;
public class code03 extends Stack {//继承Stack
//用LinkedList实现Stack
static LinkedList<Integer> hl=new LinkedList<Integer>();
//入栈
public void push(Integer h) {
hl.addFirst(h);
}
//出栈
public Integer pull() {
return hl.pollFirst();
}
public Integer peek() {
return hl.peekFirst();
}
public String toString() {
return hl.toString();
}
public int getSize() {
return hl.size();
}
public static void main(String[] args){
code03 mystack=new code03();
mystack.push(1);//入栈
mystack.push(2);
System.out.println(mystack);
System.out.println(mystack.getSize());//长度
System.out.println(mystack.pull());//出栈
}
}