当前位置:首页 » 编程语言 » enumerationjava

enumerationjava

发布时间: 2022-08-28 16:58:19

java中,遍历数据结构Enumeration和Iterator相比有什么优劣

从现有的 API 中看 Enumeration 仅迭代,而 Iterator 则添加了修改操作,只要实现类确保修改过程本身在语义上是一致的即可,比如普通的 Iterator 允许删除当前索引位置指向的元素,因为它不会导致已经获取的索引位置失效,因此允许,而 ListIter

❷ java Enumeration这个类重要吗

Enumeration接口
Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。
Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提供方法协议。下面是一个使用的例子:
//e is an object that implements the Enumeration interface
while (e.hasMoreElements()) {
Object o= e.nextElement();
System.out.println(o);


实现该接口的对象由一系列的元素组成,可以连续地调用nextElement()方法来得到 Enumeration枚举对象中的元素。Enumertion接口中仅定义了下面两个方法。
·boolean hasMoreElemerts()
测试Enumeration枚举对象中是否还含有元素,如果返回true,则表示还含有至少一个的元素。
·Object nextElement()
如果Bnumeration枚举对象还含有元素,该方法得到对象中的下一个元素。

【例】
/*
* @(#)DemoEnumeration.java
* 演示Enumeration接口的使用
* /
import java.util.*;
class DemoEnumeration{
public static void main(String[] args){
//实例化MyDataStruct类型的对象
MyDataStruct mySataStruct=new myDataStruct();
//得到描述myDataStruct类型对象的enumeration对象
Enumeration myEnumeration =myDataStruct.getEnum();
//使用对象循环显示myDataStruct类型的对象中的每一个元素
while (myEnumeration.hasMoreElements())
System.out.println(myEnumeration.nextElement());
}
}

//MyEnumeration类实现Enumeration接口
class MyEnumerator implements Enumeration
{
int count; // 计数器
int length; //存储的数组的长度
object[] dataArray; // 存储数据数组的引用
//构造器
MyEnumeration(int count,int length,object[] dataArray){
this.count = count;
this.length= length;
this.dataArray=dataArray;
}
public boolean hasMoreElements() {
return (count< length);
}
public Object nextElement() {
return dataArray[count++];
}
}
//MyDataStruct类用于实例化一个简单的、可以提供enumeration对象
//给使用程序的数据结果对象
class MyDataSttuct
{
String[] data;
// 构造器
MyDataStruct(){
data=new String[4]
data[0] ="zero";
data[1]="one";
data[2] ="two";
data[3]="three";

// 返回一个enumeration对象给使用程序
Enumeration getEnum() {
return new MyEnumeration(0,data.length,data);


程序的运行结果为:
zero
one
two
three

❸ java中enumeration问题

我给你举个例子你就知道了
en可看着盒子
hasMorElements比作问盒子有没有鸡蛋

有时我们问有几个鸡蛋啊盒子。看来这个en.hasMoreElements()就ok了
为什么还要这个en==null呢
那我问你,盒子是那个啊?没有盒子怎么办啊?没有盒子别提鸡蛋了,
其实哥告诉你,你说的en.hasMoreElements()是盒子为空(数量)而en==null是盒子为无(盒子就没有)。
这是两个问题。所以都要判断。

❹ java Enumeration接口的问题

老兄,你的java基础不是很扎实啊。

首先接口、抽象类是不能直接实例化的。
但是,只要是个类,它总能继承其它类或实现接口吧。
比如,类AImpl实现了接口A。
就可以写成:
AImpl a = new AImpl();
A b = a;

❺ java Enumeration这个接口重要吗

Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。 Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提供方法协议。下面是一个使用的例子: //e is an object that implements the Enumeration interface while (e.hasMoreElements()) { Object o= e.nextElement(); System.out.println(o); } 实现该接口的对象由一系列的元素组成,可以连续地调用nextElement()方法来得到 Enumeration枚举对象中的元素。Enumertion接口中仅定义了下面两个方法。 ·boolean hasMoreElemerts() 测试Enumeration枚举对象中是否还含有元素,如果返回true,则表示还含有至少一个的元素。 ·Object nextElement() 如果Bnumeration枚举对象还含有元素,该方法得到对象中的下一个元素。

❻ java enumeration类

package com.ljq.test;
/**
* 枚举用法详解
*
* @author jiqinlin
*
*/
public class TestEnum {
/**
* 普通枚举
*
* @author jiqinlin
*
*/
public enum ColorEnum {
red, green, yellow, blue;
}
/**
* 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
*
* @author jiqinlin
*
*/
public enum SeasonEnum {
//注:枚举写在最前面,否则编译出错
spring, summer, autumn, winter;
private final static String position = "test";
public static SeasonEnum getSeason() {
if ("test".equals(position))
return spring;
else
return winter;
}
}
/**
* 性别
*
* 实现带有构造器的枚举
*
* @author jiqinlin
*
*/
public enum Gender{
//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错
MAN("MAN"), WOMEN("WOMEN");
private final String value;
//构造器默认也只能是private, 从而保证构造函数只能在内部使用
Gender(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
/**
* 订单状态
*
* 实现带有抽象方法的枚举
*
* @author jiqinlin
*
*/
public enum OrderState {
/** 已取消 */
CANCEL {public String getName(){return "已取消";}},
/** 待审核 */
WAITCONFIRM {public String getName(){return "待审核";}},
/** 等待付款 */
WAITPAYMENT {public String getName(){return "等待付款";}},
/** 正在配货 */
ADMEASUREPRODUCT {public String getName(){return "正在配货";}},
/** 等待发货 */
WAITDELIVER {public String getName(){return "等待发货";}},
/** 已发货 */
DELIVERED {public String getName(){return "已发货";}},
/** 已收货 */
RECEIVED {public String getName(){return "已收货";}};
public abstract String getName();
}
public static void main(String[] args) {
//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值
ColorEnum colorEnum = ColorEnum.blue;
switch (colorEnum) {
case red:
System.out.println("color is red");
break;
case green:
System.out.println("color is green");
break;
case yellow:
System.out.println("color is yellow");
break;
case blue:
System.out.println("color is blue");
break;
}
//遍历枚举
System.out.println("遍历ColorEnum枚举中的值");
for(ColorEnum color : ColorEnum.values()){
System.out.println(color);
}
//获取枚举的个数
System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");
//获取枚举的索引位置,默认从0开始
System.out.println(ColorEnum.red.ordinal());//0
System.out.println(ColorEnum.green.ordinal());//1
System.out.println(ColorEnum.yellow.ordinal());//2
System.out.println(ColorEnum.blue.ordinal());//3
//枚举默认实现了java.lang.Comparable接口
System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1
//--------------------------
System.out.println("===========");
System.err.println("季节为" + SeasonEnum.getSeason());
//--------------
System.out.println("===========");
for(Gender gender : Gender.values()){
System.out.println(gender.value);
}
//--------------
System.out.println("===========");
for(OrderState order : OrderState.values()){
System.out.println(order.getName());
}
}
}

❼ java:Enumeration大家帮忙啊,我很急啊,

提交的参数如果通过getParameterNames方法取得名称的话,取得的数据是散列排序的,因此显示的时候是乱的,没有固定顺序

❽ JAVA里String类和Enumeration类是什么关系

Enumeration 是一个接口,本身和 String 没有任何关系,从这句String str =(String)enu.nextElement(); 来看的话,enu 中只是存储了 String 类型的元素,当然 Enumeration 也不止是只存储 String 类型的数据,也可以是 Integer, Float , Long ,其它类 等等。
(String)enu.nextElement() 不是对 Enumeration 向下转型,而对 enu.nextElement() 返回的结果转型。

❾ java中关于Enumeration.hasMoreElements()的问题

import java.util.Enumeration;
import java.util.Hashtable;

public class Enums {

public static String[] copare(String[] a, String[] b) {
int cnt = 0; // 添加==============
Hashtable<String, String> hashtable = new Hashtable<String, String>();
Hashtable<String, String> hashtable_new = new Hashtable<String, String>();
for (int i = 0; i < b.length; i++) {
hashtable.put(b[i], b[i]);
}
for (int i = 0; i < a.length; i++) {
if (!hashtable.contains(a[i])) {
hashtable_new.put(a[i], a[i]);
cnt++; // 添加==============
}
}
Enumeration<String> enumeration = hashtable_new.keys();
int i = 0;
String[] c = new String[cnt]; // 修改==============
while (enumeration.hasMoreElements()) {
c[i] = (String) enumeration.nextElement();
i++;

}

return c;
}

public static void main(String[] args) {
String[] A = { "a", "b", "cc", "dd" };
String[] B = { "a", "b" };
String[] C = copare(A, B);
for (int i = 0; i < C.length; i++) {
System.out.println(C[i]);
}
}
}
=============
数组是要分配空间之后才能用的。
你没给他分配,那他就是个null,当然就不能用了

❿ Java中的Enumeration接口有什么作用

枚举Enumeration,作用和Iterator类似,都是输出数据.
只是这个比较古老而已.

热点内容
ios应用上传 发布:2024-09-08 09:39:41 浏览:439
ios储存密码哪里看 发布:2024-09-08 09:30:02 浏览:871
opensslcmake编译 发布:2024-09-08 09:08:48 浏览:653
linux下ntp服务器搭建 发布:2024-09-08 08:26:46 浏览:744
db2新建数据库 发布:2024-09-08 08:10:19 浏览:173
频率计源码 发布:2024-09-08 07:40:26 浏览:780
奥迪a6哪个配置带后排加热 发布:2024-09-08 07:06:32 浏览:101
linux修改apache端口 发布:2024-09-08 07:05:49 浏览:209
有多少个不同的密码子 发布:2024-09-08 07:00:46 浏览:566
linux搭建mysql服务器配置 发布:2024-09-08 06:50:02 浏览:995