- 队列
package queueTest;
import java.util.LinkedList;
import java.util.Queue;
/**
* 队列
* 与集合相似,可以保存一组元素。但是不能任意访问
* 其中元素。存取必须遵循先进先出原则。
* @author Administrator
*
*/
public class QueueDemo {
public static void main(String[] args) {
/*
* 由于LinkedList可以存放一组元素,并且
* 增删效率比较高,所以其也实现了Queue接口
* 可以看做是一个队列使用。
*/
Queue<String> queue
= new LinkedList<String>();
/*
* boolean offer(E e)
* 向队列末尾追加一个新元素
*/
queue.offer("one");
queue.offer("two");
queue.offer("three");
queue.offer("four");
System.out.println(queue);
/*
* E poll()
* 从队首获取元素,并且将该元素从队列中
* 删除
*/
String str = queue.poll();
System.out.println(str);
System.out.println(queue);
/*
* E peek()
* 该方法也会获取队首元素,但是不会做
* 出队操作,该元素不会从队列中被删除
*/
str = queue.peek();
System.out.println(str);
System.out.println(queue);
System.out.println(queue.size());
/*
* 遍历队列
*/
while(queue.size()>0){
str = queue.poll();
System.out.println(str);
}
System.out.println(queue);
}
}
- 栈
package stackTest;
import java.util.Deque;
import java.util.LinkedList;
/**
* 栈
* 存放一组元素,存取必须遵循先进后出原则
* 一般应用于操作的可追溯性(后退功能)
* @author Administrator
*
*/
public class StackDemo {
public static void main(String[] args) {
/*
* java没有为栈单独设计类型。
* 使用双端队列实现,只调用一侧的进出队
* 方法,就形成了栈。
* 不过双端队列由于具有栈的特性,所以为此
* 给栈单独定义了从一侧进出的两个方法
* push,pop
*/
Deque<String> stack
= new LinkedList<String>();
/*
* void push(E e)
* 将元素"压入"栈中
* 入栈操作,新进去的元素在栈顶(第一个位置)
*/
stack.push("one");
stack.push("two");
stack.push("three");
stack.push("four");
System.out.println(stack);
/*
* E pop()
* 出栈操作。获取栈顶元素。获取后该元素
* 会从栈中删除。
*/
String str = stack.pop();
System.out.println(str);
System.out.println(stack);
//peek同样可以使用
str = stack.peek();
System.out.println(str);
System.out.println(stack);
//遍历
while(stack.size()>0){
str = stack.pop();
System.out.println(str);
}
System.out.println(stack);
}
}