Queue接口_Enumeration接口JAVA129-130

来源:http://www.bjsxt.com/
后续内容:
队列Queue与Deque
Enumeration
Hashtable与Properties
引用类型(强软弱虚)与WeakHashMap
IdentityHashMap与EnumMap
同步控制与只读设置
开源工具包:
——Guava:Google Collection
——Apache:Commons Collection
容器总结
1、S02E129_01Queue接口队列模拟银行业务_自定义堆栈
Queue与Deque

package com.test.queue;

import java.util.ArrayDeque;
import java.util.Queue;
/**
 * 使用队列模拟银行存款业务
 */
public class IQueue {

    public static void main(String[] args) {
        Queue<Request> queue = new ArrayDeque<Request>();
        //模拟排队情况
        for (int i = 0; i < 5; i++) {
            final int num = i;//new Request()不能直接访问i
            queue.offer(new Request() {

                @Override
                public void deposit() {
                    System.out.println("第"+num+"个人办理业务,存款额度为:"+Math.random()*10000);
                }
            });
        }
        dealWith(queue);
    }
    //处理业务
    public static void dealWith(Queue<Request> queue){
        Request request = null;
        while(null != (request = queue.poll())){
            request.deposit();
        }
    }
}
interface Request{
    void deposit();//存款
}
package com.test.queue;

import java.util.ArrayDeque;
import java.util.Deque;
/**
 * 使用队列实现自定义堆栈
 * <br>1、弹
 * <br>2、压
 * <br>3、获取头
 */
public class IStack<E> {
    //容器
    private Deque<E> container = new ArrayDeque<E>();
    private int cap;

    public IStack(int cap) {
        super();
        this.cap = cap;
    }

    //压栈
    public boolean push(E e){
        if(container.size() + 1 > cap){
            return false;
        }
        return container.offerLast(e);
    }
    //弹栈
    public E pop(){
        return container.pollLast();
    }
    //获取
    public E peek(){
        return container.peekLast();
    }
    public int size(){
        return container.size();
    }
    public static void main(String[] args) {
        IStack<String> backHistory = new IStack<String>(3);
        backHistory.push("www.baidu.com");
        backHistory.push("www.google.com");
        backHistory.push("www.sina.com");
        backHistory.push("www.3.com");

        System.out.println("大小:" + backHistory.size());
        String item = null;
        System.out.println("先进后出");
        while (null != (item = backHistory.pop())) {
            System.out.println(item);
        }
    }

}

2、S02E130_01Enumeration接口_Vector_StringTokenizer
枚举Enumeration,作用和Iterator类似,都是输出数据
JDK1.5之前大量使用,之后被Iterator替代
方法:
——hasMoreElements()
——nextElement()
Vector(JDK1.4之前常用)跟ArrayList类似

package com.test.enumeration;

import java.util.Enumeration;
import java.util.Vector;
/**
 * Enumeration的使用
 * <br>1、判断hasMoreElements()
 * <br>2、获取nextElement()
 * <br>Vector的elements()方法
 */
public class UEnumeration {

    public static void main(String[] args) {
        Vector<String> vector = new Vector<String>();
        vector.add("javase");
        vector.add("html");
        vector.add("oracle");
        //遍历vector
        Enumeration<String> enumeration = vector.elements();
        while(enumeration.hasMoreElements()){
            System.out.println(enumeration.nextElement());
        }
    }

}
package com.test.enumeration;

import java.util.StringTokenizer;
/**
 * Enumeration的子类StringTokenizer:字符串分割,与String split()类似,但不支持正则表达式
 */
public class UStringTokenizer {

    public static void main(String[] args) {
        String emailStr = new String("test@163.com;test@qq.com;test@sohu.com");
        StringTokenizer stringTokenizer = new StringTokenizer(emailStr,";");
        //遍历获取
        while(stringTokenizer.hasMoreElements()){
            System.out.println(stringTokenizer.nextElement());
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值