Vector类用于保存一组对象,由于java不支持动态数组,Vector可以用于实现跟动态数组差不多的功能。如果要将一组对象存放在某种数据结构中,但是不能确定对象的个数时,Vector是一个不错的选择。

例:将键盘上输入的一个数字序列的每位数字存储在vector对象中,然后在屏幕上打印出各位数字相加的结果。

import java.util.*; //Vector类和Enumeration接口都在这个包中

public class TestVector

{

public static void main(String[] args)

{

Vector v=new Vector();

int b=0;

int num=0;

System.out.println("Please enter number:");

while(true)

{

try

{

b=System.in.read(); //从键盘读入一个字节内容

}

catch(Exception e)

{

e.printStackTrace();

}

if(b=='r'||b=='n') //如果是回车或换行的话,则退出while循环,即一串数据输入完成

{

break;

}

else

{

num=b-'0';

/*由于输入的是字符数字,它的数值是它的ascii码,例如‘0’=32;‘1’=33,

所以要想让输入的‘1’在计算机里为1,必须减去32,即‘0’*/

v.addElement(new Integer(num)); //将数字存入vector

}

}

int sum=0;

Enumeration e=v.elements();

//取出Vector中的所有元素,必须使用elements()方法,它返回一个Enumeration接口。

while(e.hasMoreElements())//如果当前指示器还指向一个对象,即还有数据

{

Integer intobj=(Integer)e.nextElement();

//取出当前指示器所指的对象,并将指示器指向下一个对象。

sum+=intobj.intValue(); //将Integer对象中所包装的整数取出来,并且加到sum中。

}

System.out.println(sum);//打印出这个和

}

}

Enumeration的nextelement()方法返回的是指示器指示的对象,然后将指示器指向下一个对象。

由于vector可以存储各种类型的对象,所以编译器无法知道存储的是什么类型的对象,所以即使我们知道里面存储的是什么类型的,也要显示的说明它是什么类型的,如本例中的(Integer)e.nextElement();

Enumeration接口实现了一种机制,通过这种机制,我们就可以只用hasMoreElements()方法以及nextElement()方法就可以实现所有对象的访问。

r vector 4 elements_Vector类与Enumeration接口相关推荐

  1. Java Enumeration接口

    import java.util.Vector; import java.util.Enumeration; /*  * Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个 ...

  2. Java Enumeration接口与Iterator接口

    一.Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃, ...

  3. java enumeration接口_20180824-Java Enumeration 接口

    Java Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被 ...

  4. java enumeration 创建_Java Enumeration接口 - Java 教程 - 自强学堂

    Java Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被 ...

  5. 黑马程序员--Java学习日记之集合(collection类与list接口)及泛型概述

     ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一,集合概念   之前我们存储大量的对象,可以使用数组:   但数组有两个缺陷:   1. ...

  6. Java多线程的实现方式-Thread 类,Runnable 接口

    在 Java 的 JDK 开发包中,已经自带了对多线程技术的支持,可以方便地进行多线程编程.实现多线程编程的方式主要有两种:一种是继承 Thread 类,另一种是实现 Runnable 接口.下面详细 ...

  7. 3.vector实现字符串类

    3.vector实现字符串类 本章前言: 身为土生土长的中国程序员,你肯定要用unicode来编写程序.但是由wchar_t数组实现的字符串准确点说应该叫字符数组,但它在使用时比较繁琐,而且容易出现数 ...

  8. C++ string类和常用接口的实现

    目录 C++ string类 string类的常用接口说明 string类(实现常用接口) C++ string类 值得注意的是 , string不是STL的容器,string是basic_strin ...

  9. Service 层和 Dao 层有必要为每个类都加上接口吗?

    以下文章来源方志朋的博客,回复"666"获面试宝典  作者:架构思维 toutiao.com/i6882356844245975563 前几天刷头条又刷到了「Service层和Da ...

最新文章

  1. Hibernate Annotation 学习
  2. python自动化测试数据驱动_Python 自动化测试(四):数据驱动
  3. 【转】c#数字图像处理(二)彩色图像灰度化,灰度图像二值化
  4. python中以表示语块_scikitlearn:将数据拟合成块与将其全部拟合到on
  5. 苹果cms后台微信小程序影视源码-带视频教程
  6. css3直线运动_纯css3实现曲线运动——贝塞尔曲线(cubic-bezier)
  7. 直播app开发必备五步流程
  8. 地理加权回归出现多重共线性如何解决
  9. 关于赚钱的 6 个重要认知,多数人都不知道
  10. 嵌入式系统开发笔记33:关于“人生苦短,我学Python”这句话的由来
  11. 中级java面试问题大全及答案大全
  12. 00003 不思议迷宫.0001:解密Lua脚本
  13. windows中docker 安装和使用
  14. 增值电信业务经营许可证怎么续期,需要什么材料
  15. GraalVM - 云原生时代的 Java 笔记
  16. 如何一键关闭所有视窗?
  17. Mac OS X 10.9.5系统下创建quick3.3final项目出现问题
  18. python微信交流群,零基础、入门、大牛都可加入!
  19. Linux第十节——信号
  20. VIVADO的.XCI文件探索之二:在项目中使用XCI文件

热门文章

  1. 如何在 C# 中使用 Dapper ORM
  2. 初识ABP vNext(8):ABP特征管理
  3. .Net Core微服务入门全纪录(完结)——Ocelot与Swagger
  4. 一切都要从华为云 CloudIDE 酷似 VS Code 说起
  5. 【.NET Core 跨平台 GUI 开发】第三篇:Gtk# 表格布局与事件处理
  6. .NET 云原生技术使用调查
  7. 《从零开始学ASP.NET CORE MVC》课程介绍
  8. Service Fabric 用 Powershell 部署应用到本地
  9. 在.NET Core类库中使用EF Core迁移数据库到SQL Server
  10. 开源纯C#工控网关+组态软件(六)图元组件