lesson6.5集合类vector和Enumeration、Collection和Iterator、Collections

本文深入探讨了Java集合框架中的Vector与Enumeration、ArrayList与Iterator的使用方法,并对比了它们之间的主要区别。此外,还介绍了如何利用这些集合类来解决实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 集合类Vecotr和Enumeration的使用

Vector就是动态数组,使用时要导包java.util.Vector

用法:

addElement(Object o);//添加元素,元素可以是任意对象,

elements();//取出元素,但取出的是Enumeration接口实现的对象。

Enumeration接口定义了一套方法去操作集合对象

如:nextElement();//返回指示器指向的元素对象,指示器自动加一。

hasMoreElements();//指示器有元素时返回false,没有元素时返回true。

使用举例

Vector v = new Vector();//存对象,假设是Integer

v.addElement(...);

Enumeration e = v.elements();//取对象

while(e.hasMoreElements())
{
sum += ((Integer)e.nextElement()).intValue();//取出的对象是Object要强制转换
}


2. Collection接口与Iterator接口

ArrayList  Set  List都继承自Collection,区别是:

ArrayList是实现List的类,List里的元素有顺序,可以进行排序。

Collection中元素没有顺序即无法找到第几个元素,允许有重复的元素和null对象

Set中元素没有顺序,不允许有重复元素,最多一个null对象。


ArrayList类似Vector,常用函数有:

add(Object o);//添加一个元素对象

iterator();//取元素,返回一个Iterator对象。


Iterator接口类似Enumeration,常用函数有:

hasNext();//指示器是否指向元素

next();//返回指示器所指向的对象

ArrayList、Iterator和Vector、Enumeration的用法类似。

习题:输入一排数,用ArrayList输出和。


import java.util.ArrayList;
import java.util.Iterator;

//ArrayList是Collection的子类,类似Vector
public class TestCollectionIterator {

	public static void main(String [] args)
	{
		ArrayList v = new ArrayList();//存对象
		int ch = 0; ;//函数中定义的变量要初始化
		int sum = 0;
		while(true)
		{
			try{
				ch = System.in.read();//这里ch是个整数,但读取的是个字符,存的是ascii码
			}catch(Exception e)
			{
				e.getStackTrace();
			}
			if(ch=='\r'|| ch=='\n')
			{
				break;
			}
			else
			{
				ch = ch - '0';
				v.add(Integer.valueOf(ch));//转换成Integer对象在存进容器里
			}
		}
		Iterator i = v.iterator();
		
		while(i.hasNext())
		{
			sum += ((Integer)i.next()).intValue();
		}
		
		System.out.println("the sum is "+sum);
	}
}


Vector和ArrayList的区别是Vector中的方法都是县城同步的,所以单线程访问的话效率较低;ArrayList不是线程同步的,单线程访问效率较高,多线程要自己同步处理。

Collections类提供操作集合对象的方法,如

ArrayList a = new ArrayList();
......
Collections.sort(a);//排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值