Collection接口与Iterator接口
Collection接口的实现类跟Vector相似。要从实现了Collection接口的类的实例中取出保存在其中的元素对象,必须通过Collection接口的Iterator()方法,返回一个Iterator接口。
Iterator接口与Enumeration接口非常相似。该接口的优点是其中的方法名比较简短。
Arraylist类实现了Collection接口
例:将上例改写为用ArrayList类和Iterator接口来实现。
import java.util.*;
public class TestCollection
{
public static void main(String[] args)
{
ArrayList v=new ArrayList();
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')
{
break;
}
else
{
num=b-'0';
v.add(new Integer(num)); //方法为add()而不是addelement()
}
}
int sum=0;
Iterator e=v.iterator();
while(e.hasNext())//判断是否有数据时,使用的是hasNext()方法
{
Integer intobj=(Integer)e.next(); //取数据时使用next()方法,而不是nextElement()
sum+=intobj.intValue();
}
System.out.println(sum);
}
}
这两组实现的结果都是一样的,那什么时候使用哪种呢?
Vector类中的所有方法都是线程同步的,所有有两个以上的线程访问并发访问vector对象时,是安全的,但是只有一个线程访问时,仍然存在同步监视器检查的情况,需要额外的开销,影响了效率。而ArrayList中的所有方法是不同步的,所以程序中如果不存在多线程安全的问题,则ArrayList比Vector的效率高。如果存在多线程安全的问题,使用ArrayList要自己编写同步处理,而使用Vector则不要。
Collection,Set,List的区别如下:
Set,List是Collection的子类。
Collection各元素对象之间没有指定的顺序,允许有重复元素和多个Null元素对象。所以不可以排序,也不可以找出第几个第几个元素。
Set各元素对象之间没有指定的顺序,不允许有重复元素,最多允许有一个Null元素对象。
List各元素对象之间有指定的顺序,允许有重复元素和多个Null元素对象。
import java.util.*;
public class TestSort
{
public static void main(String[] args)
{
ArrayList al=new ArrayList(); //新建一个arraylist ,由于它也实现了list接口,所以可以进行排序
al.add(new Integer(1));
al.add(new Integer(3));
al.add(new Integer(2)); //添加三个数字,随便添加,没有排序
System.out.println(al.toString()); //打印
Collections.sort(al); //排序
/*Collections类本身并不是一个集合类,它只是提供了各种方法来操作集合类*/
System.out.println(al.toString());
}
}
相关文章
- SpringBoot请求第三方接口[通俗易懂]
- Python 3 读取和存储Excel数据(应用到接口测试)
- rj45口的485线如何连接_rj45接口485怎么接
- java数据结构——集合框架及Collection、Map接口的介绍
- 土味情话/API接口
- API接口测试点
- 接口测试|Fiddler会话栏中添加IP列
- 怎么写一份好的接口文档?
- python做一个http接口测试框架详解编程语言
- [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念详解编程语言
- Java Collection接口
- 第三方接口 黑客怎么爱你都不嫌多
- 接口测试实现与Redis的连接(接口测试连接redis)
- PHP对接微信公众平台消息接口开发流程教程
- Go语言中的方法、接口和嵌入类型详解
- 高性能web服务器框架Tornado简单实现restful接口及开发实例