1.Stack详解(栈的逻辑结构:后进先出)
创建栈 <?> 属于泛型:
Stack<?> stack = new Stack<>();
操作栈:
push(Object o)向栈中存放数据(改变Stack,返回值为新添加的数据o)
pop()从栈中获取数据(改变Stack,返回值为获取到栈顶数据)
peek()查看栈中数据(不改变Stack,返回值为栈顶数据)
search(Object o)查找栈中数据(不改变Stack,返回值从栈顶到数据o的距离,默认栈顶为1)
empty()查看栈是否为空(不改变Stack,返回值当栈为空返回true)
//创建栈 <Integer>
Stack<Integer> numberStack = new Stack<>();
//添加数据
numberStack.push(123);
System.out.println(numberStack);
//查看栈顶数据
System.out.println(numberStack.peek());
System.out.println(numberStack);
//获取栈顶数据
System.out.println(numberStack.pop());
System.out.println(numberStack);
//判断栈是否为空
System.out.println(numberStack.empty());
//查找元素距离栈顶的距离
numberStack.push(123);
numberStack.push(456);
System.out.println(numberStack.search(123));
System.out.println(numberStack);
运行结果:
2.Queue(队列的逻辑结构:先进先出)
创建<?>属于泛型
Queue<Integer> queue = new ArrayDeque<>();
offer(Object o)向队列追加数据(改变Queue,返回值为成功与否)
poll()从队列头部获取数据(改变Queue,返回值为队头数据)
peek()查看队头数据(不改变Queue,返回值为队头数据)
isEmpty()判断队列是否为空(不改变Queue,返回值如果为空返回true)
//创建队列
Queue<Integer> numberQueue = new ArrayDeque<>();
//添加数据
numberQueue.offer(123);
numberQueue.offer(456);
System.out.println(numberQueue);
//查看数据
Integer y = numberQueue.peek();
System.out.println(y);
System.out.println(numberQueue);
//拿取数据
Integer x = numberQueue.poll();
System.out.println(x);
System.out.println(numberQueue);
//判断是否为空
System.out.println(numberQueue.isEmpty());
运行结果: