Java学习笔记(七) Enumertation接口的理解和使用和StringTokenizer的使用

Enumeration接口

接口中的函数

函数名称函数的作用
hasMoreElements()检查当前集合中还有没有下一个元素
nextElement()获得集合中的下一个元素

如果当前集合中已经没有元素,那么会返回NoSuchElementException异常。
一般情况下利用Enumeration接口来遍历采取下面的格式:

    Enumeration enum = . . .;
    while (enum.hasMoreElements()) {
        Object o = enum.nextElement();
        processObject(o);
        }

利用collections类来生成Enumeration对象
- vector,stack : elements()
- Dictionary, Hashtable, Properties: elements(), keys()
注意: 因为在使用Enumeration接口时,如果原来的集合被修改,那么会出现不好的结果,所以在多线程的程序中,我们常常将用到Enumeration的代码放入synchronized代码块当中

应用Enumeration接口的例子

The SequenceInputStream Class

SequenceInputStream像它的名字一样,是将一些输入流作为集合连接为了一个串行的输入流

public SequenceInputStream(Enumeration enum)

下面给出一个例子就能很清楚的讲清这个类的作用:

Vector v = new Vector(3);
v.add(new FileInputStream("/etc/motd"));
v.add(new FileInputStream("foo.bar"));
v.add(new FileInputStream("/temp/john.txt"));
Enumeration enum = v.elements();
SequenceInputStream sis = new SequenceInputStream(enum);
InputStreamReader isr = new InputStreamReader(sis);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();//关掉集合中所有的输入流

StringTokenize(Enumeration的一个实现)

它的作用是切分出一个字符串的子串:

StringTokenizer tokenizer = new StringTokenizer("This is a test");
while (tokenizer.hasMoreTokens()) {
String s = tokenizer.nextToken();
System.out.println(s);

具体的定义如下:
首先看一下函数表:

函数名称函数的作用
public StringTokenizer(String str)利用一个字符串进行初始化,默认的分隔符是空格,制表符,换行符,回车符
public StringTokenizer(String str, sh
public StringTokenizer(String str, String delim, boolean returnDelims)利用一个字符串进行初始化,并且设置分隔符,设置分隔符是否返回

还有几个常用的函数:

函数名称函数的作用
int countTokens()获得拆分出字符串的总数
boolean hasMoreTokens()查看是否哈有分隔符
nextToken()获得分隔到的下一个字符串
String nextToken(String delim)按照指定分隔符获得下一个字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值