首页 技术 正文
技术 2022年11月14日
0 收藏 577 点赞 2,762 浏览 1960 个字

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等容器简单使用

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等容器简单使用

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等容器简单使用

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849