文档章节

遍历枚举接口的元素

miring
 miring
发布于 2017/02/22 13:27
字数 510
阅读 4
收藏 0

早在Java SE 1.0版,就存在集合类。集合类可以用来管理一组相关的对象。当需要查看、使用集合中的所有对象时可以使用枚举接口对其进行遍历。枚举接口中定义了两个方法,它通常和向量一起使用。本实例将演示其用法,实例运行效果如图 输入图片说明 实现了Enumeration接口的对象可以生成一系列元素,每次生成一个。通过连续调用nextElement()方法可以连续获得枚举接口中的元素。但是如果枚举接口中已经没有元素,调用该方法会抛出异常。因此应该先用hasMoreElements()方法判断枚举中是否还有可用元素。该接口定义了两个方法,其声明如下

boolean hasMoreElements()

测试枚举接口中是否还含有可用元素,因为其返回值是boolean,所以适合放在while循环中。

E nextElement()

如果枚举接口中还有可用元素,则返回下一个元素,否则会出现NoSuchElementException。 技巧:Collections类的静态方法enumeration()可以用来将任意集合转换成枚举接口类型。 编写EnumerationTest类,在该类的main()方法中,首先在向量中增加3个元素,然后利用枚举接口将其取出。代码如下:

package com.mingrisoft.enumerationtest;

import java.util.Enumeration;
import java.util.Vector;

public class EnumerationTest {
    public static void main(String[] args) {
        Vector<Integer> vector = new Vector<Integer>();
        for (int i = 0; i < 3; i++) {
            vector.add(i);
            System.out.println("在向量中增加元素:" + i);
        }
        Enumeration<Integer> e = vector.elements();
        while (e.hasMoreElements()) {
            System.out.println("获得向量中的元素:" + e.nextElement());
        }
    }
}

心法领悟:枚举接口的升级。 随着Java的不断发展,新增加了一个Iterator接口,该接口不仅包括了枚举接口的功能,还增加了一个remove()方法。另外,该接口对方法的名字进行了优化:hasNext()用来测试是否还有可用元素,next()用来获得元素。在新类中,推荐使用Iterator()接口来实现遍历功能。

© 著作权归作者所有

miring
粉丝 0
博文 23
码字总数 14869
作品 0
长春
程序员
私信 提问
iOS设计模式--迭代器模式

何为迭代器模式? 迭代器提供了一种顺序访问集合对象中元素的方法,而无需暴漏结构的底层表示和细节。遍历集合中元素的职能从集合本身转移到迭代器对象。迭代器定义了一个用于访问集合元素并...

国士梅花
2015/08/28
127
0
Java枚举类型深度学习(一)

枚举简介 枚举类型可以使用关键字enum来指定,可以将一组值得有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。这是一种非常有用的功能。Enum为一个泛型抽象类,其实...

断桥残雪断桥残雪
2015/08/16
383
0
Java进级篇 - Java Enum的用法详解

用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum ...

YOTOO
2014/05/19
711
1
Java Enum枚举的用法(转)

说明:Java的枚举比dotnet的枚举好用,至少支持的方式有很多。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个...

easonjim
2017/11/14
0
0
Java中的enum的使用及enum源码分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/u010398771/article/details/98079603 说明,这篇文章的环境是oracle ...

长河
08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ERC-777以太坊新代币标准解读

ERC777是一个新的高级代币标准,可以视为ERC20的升级版本,因此它解决了ERC20以及ERC223存在的一些问题,开发者可以根据自己的具体需求进行选型。 1、使用ERC820进行合约注册 有别于ERC20的自...

汇智网教程
32分钟前
3
0
代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部