当前位置:首页 » 编程语言 » 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类似,都是输出数据.
只是这个比较古老而已.

热点内容
安卓手机的云备份在哪里能找到 发布:2025-01-17 00:14:12 浏览:471
诈骗的脚本 发布:2025-01-16 23:51:27 浏览:314
电脑配置有点低怎么玩和平精英 发布:2025-01-16 23:46:14 浏览:818
ipfs分布式服务器是什么币种 发布:2025-01-16 23:32:29 浏览:991
android动态icon 发布:2025-01-16 23:03:12 浏览:605
优酷电脑缓存在哪 发布:2025-01-16 22:58:29 浏览:298
进口途锐哪个配置好 发布:2025-01-16 22:35:24 浏览:962
骨干路由器怎么配置 发布:2025-01-16 22:24:39 浏览:244
途安2021款买哪个配置 发布:2025-01-16 22:21:01 浏览:329
图片的压缩原理 发布:2025-01-16 22:17:15 浏览:493