1.Enumeration容器使用:

 package com.etc;

 import java.util.Enumeration;
import java.util.Vector; /*
Enumeration容器的使用,类似于Iterator迭代器,同样用于获取数据
判断是否存在下一个元素:hasMoreElements()
获取下一个元素:nextElement()
需要借助Vector的elements()方法
Vector的线程较为安全,但是存储效率不高
*/
public class TestEnumerationDemo { public static void main(String[] args) {
Vector<String> v=new Vector<String>();
v.add("java");
v.add("python");
v.add("c++");
//类似于迭代器的使用
Enumeration<String> em=v.elements();
while(em.hasMoreElements()) {
System.out.println(em.nextElement()+" ");
}
}
}

效果截图:

java-Enumeration,单向队列Queue及双向队列Deque等容器简单使用-LMLPHP

2.单向队列Queue简单使用:

 package com.etc;
import java.util.ArrayDeque;
import java.util.Queue;
/*
利用单向队列模拟银行存款业务,先进先出
*/
public class TestQueueDemo1 {
public static void main(String[] args) {
//构建que队列容器:实现先进先出
Queue<Request> que=new ArrayDeque<Request>();
//利用循环简单实现10个人存款的情况
for(int i=0;i<10;i++) {
final int num=i;
que.offer(new Request() {
@Override
public void Deposite() {
System.out.println("第"+num+"个人正在办理存款业务。");
}
});
}
dealWith(que);
} public static void dealWith(Queue<Request> que) {
Request req=null;
while(null!=(req=que.poll())) {
//处理业务
req.Deposite();
}
}
} //定义一个接口用于实现银行业务
interface Request{
//存款业务
void Deposite();
}

效果截图:

java-Enumeration,单向队列Queue及双向队列Deque等容器简单使用-LMLPHP

3.双向队列Deque简单使用:

 package com.etc;

 import java.util.ArrayDeque;
import java.util.Deque;
//利用双向队列实现自定义容器栈方法实现
public class TestQueueDemo2<E> {
//定义一个容器
private Deque<E> include=new ArrayDeque<E>();
//设置容量
private int size;
//构造器
public TestQueueDemo2(int size) {
super();
this.size=size;
} //利用队列的特点实现栈的压栈
public boolean push(E e) {
//如果容器的大小比自身的容量小
if(include.size()+1>size) {
return false;
}
/*将后一个的值压入栈中成功
offerLast(E e);相当于压入队列的尾部然后返回true*/
return include.offerLast(e);
}
//弹栈,将最后一个元素拿出来
public E pop() {
return include.pollLast();
}
//获取压入栈中的最后一个元素
public E peek() {
return include.peekLast();
}
//获取当前栈容量
public int size() {
return this.include.size();
} }
 package com.etc;

 public class Demo2Test {

     public static void main(String[] args) {
//自定义栈初始化
TestQueueDemo2<String> str=new TestQueueDemo2<String>(5);
//栈头端压入数据
str.push("first");
str.push("second");
str.push("third");
System.out.println(str.size());
//遍历
String item=null;
while(null!=(item=str.pop())) {
System.out.println(item);
} } }

效果截图:

java-Enumeration,单向队列Queue及双向队列Deque等容器简单使用-LMLPHP

05-07 15:24