Vector类与Enumeration接口
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()方法就可以实现所有对象的访问。
Vector类与Enumeration接口的更多相关文章
- 五:Java之Vector类专题
据说期末考试要考到Vector 这个类,出于复习须要在这里就要好好整理下这个类了. 一.基本概念 Vector 是可实现自己主动增长的对象数组. java.util.vector提供了向量类(vect ...
- 谈一谈Vector类
一.关于Vector类的注意事项 1.从 Java 2 平台 v1.2 开始,vector类改进为实现 List 接口,成为 Java Collections Framework 的成员:所以vect ...
- java中Vector类的常用方法
Vector类是实现List接口,所以继承的方法就不在这里讲了 https://www.cnblogs.com/xiaostudy/p/9503199.html public void add(int ...
- 20180824-Java Enumeration 接口
Java Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被 ...
- Java Enumeration接口
Enumeration接口定义 Enumeration接口与Iterator接口用法比较 一. 1.Enumeration接口定义 public interface Enumeration<E& ...
- Java API —— ArrayList类 & Vector类 & LinkList类
1.ArrayList类 1)ArrayList类概述 · 底层数据结构是数组,查询快,增删慢 · 线程不安全,效率高 2)ArrayList案例 ...
- Java Vector 类
Vector类实现了一个动态数组.和ArrayList和相似,但是两者是不同的: Vector是同步访问的. Vector包含了许多传统的方法,这些方法不属于集合框架. Vector主要用在事先不知道 ...
- 【stanford C++】容器III——Vector类
主要介绍如下5个容器类——Vector, Stack,Queue,Map和Set,各个都表示一重要的抽象数据类型.另外,各个类都是一些简单类型的值的集合,所以称它们为容器类. 暂且我们先不需要知道它们 ...
- Java的Stack类实现List接口真的是个笑话吗
今天在网上闲逛时看到了这样一个言论,说“Java的Stack类实现List接口的设计是个笑话”. 当然作者这篇文章的重点不是这个,原本我也只是一笑置之,然而看评论里居然还有人附和,说“Ja ...
随机推荐
- 在LoadRunner中进行Base64的编码和解码
<Base64 Encode/Decode for LoadRunner>这篇文章介绍了如何在LoadRunner中对字符串进行Base64的编码和解码: http://ptfrontli ...
- Orange的数据挖掘工具入门使用
Orange的数据挖掘工具入门使用 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpeach ...
- 约瑟夫环 java实现
问题: N个人从1到N编号.围城一圈,从1開始报数, 数到X时,将X的编号输出,并将那个人踢出, 下一个从1再開始报数,直到全部人都出去 思路: 就是计数.移除,没有太深的思想,直接上代码: pack ...
- JavaScript经常使用代码段
把例如以下代码增加<body>区域中: 后退 前进 <!--<input type="button" value="后退" onClic ...
- SSH限制ip登陆
linux限制IP访问ssh 在/etc/hosts.allow输入 (其中192.168.10.88是你要允许登陆ssh的ip,或者是一个网段192.168.10.0/24) sshd: ...
- 转: RabbitMQ实现中AMQP与MQTT消息收发异同
转自:http://www.cnblogs.com/lucifer1997/p/9438186.html 实现了AMQP与MQTT(至多一次)后,用多个队列以topic exchange的方式用相同交 ...
- Livereload介绍
Livereload可理解为即时刷新,在前端开发中,开发人员在编写或调试html/js/css代码后须要从编辑器切换到浏览器.再刷新浏览器才干看到页面变化,这样的十分频繁的操作在一定程度上影响了工作效 ...
- Lintcode---二叉树的前序、中序、后序遍历
给出一棵二叉树,返回其节点值的后序遍历. 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1] 思路:二叉树的后序遍历,简单 ...
- mysql创建账号对应的数据库方法
增加一个用户mydb密码为123450, 让他只可以在(localhost/%)%表示可以支持远程上登录,并可以对数据库mydata5_db进行查询.插入.修改.删除的操作. grant select ...
- c++ 返回对象的引用要小心
除非能保证返回对象的生命周期足够长. 一定不要返回临时对象的引用.