java中的栈和队列的基础API

java 中的队列和栈

一:队列

1

-->队列是常用的数据结构,可以看作特殊的线性表,队列限制了线性表的访问方式:只能从线性表的一段(offer)元素,从另一段去除(poll)元素-

--->队列:先进先出

--->JDK提供了Queue接口,同时使得LinkedList实现了该接口(选择Linkedist实现Queue的原因在于Queue经常要进行添加和删除,linkedlist在这方面效率较高)

--->Queue 的接口:

boolean offer(E e):将一个对象加之队尾,成功返回true

E poll():从队首删除并返回一个元素

E peek():返回队首的元素(但是不删除)

2)测试代码:


		import java.util.LinkedList;
		import java.util.Queue;
		/*
		 * E poll()
		 * 对象进行了出队操作,获取队列第一个元素
		 * 并且获取该元素就从队列中删除了。
		 * 
		 */
		/*
		 * E peek()
		 * 若想引用队首元而不做出队操作
		 * 那么可以使用peek方法 
		 */
		public class Demo1 {
			public static void main(String[] args) {
			Queue<String> queue=new LinkedList<String>();
			queue.add("one");
			queue.add("two");
			queue.add("three");
			queue.add("four");
			System.out.println(queue);
			String str=queue.poll();
			System.out.println(str);
			System.out.println(queue);
			String str1=queue.peek();
			System.out.println(str1);
			while(queue.size()>0){
				String str3=queue.poll();
				System.out.println(str3);
			}
			System.out.println("遍历完毕,输出queue");
			System.out.println(queue);
		}
		}


二 栈

1 -->DequeQueue的子接口,定义了所谓“双端队列”即从队列的两端可以入队

offer)和出队(poll),LinkedList实现了此接口。

如果将Deque限制为只能从一段入队和出队。则实现""的数据结构,对于”栈“而言,入栈称之为push,出栈称之为pop

-->先进后出的原则

-->Deque 主的实现接口

1.push()

2.peek()

3.pop()

(2)测试代码:


			import java.util.Deque;
			import java.util.LinkedList;
			/**
			 * 栈结构
			 * 存放一组数组 但是存取元素必须遵循先进后出的原则
			 * java没有为栈提供专门的类 而是使用双端队列实现的 java.util.Deque
			 * @author soft01
			 *
			 */
			public class Demo2 {
				public static void main(String[] args) {
				Deque<String> deque=new LinkedList<String>();
				deque.push("one");
				deque.push("two");
				deque.push("three");
				System.out.println(deque);
				String str=deque.peek();
				System.out.println(str);
				System.out.println(deque);	
				System.out.println(deque);
				while(deque.size()>0){
					String str1=deque.pop();
					System.out.println(str1);
		
				}
			}
			}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值