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) 按照指定分隔符获得下一个字符串

你可能感兴趣的:(java,Collection)