首页 > 其他 > 详细

Hashset,Iterator

时间:2014-11-04 22:35:12      阅读:372      评论:0      收藏:0      [点我收藏+]

HashSet类主要是设计用来做高性能集运算的,例如对两个集合求交集、并集、差集等。集合中包含一组不重复出现且无特性顺序的元素。

(一)HashSet的一些特性如下:

1、HashSet中的值不能重复没有顺序

2、HashSet的容量会按需自动添加。

 

(二)那么HshSet是如何做到集合中的值不重复呢?

当使用HashSet时,hashcode()方法就会得到调用,它会先判断已经存储在集合中的对象的hash code值是否与新增加的对象的hash code的值一致,如果不一致,就直接加入到集合中;如果一致,那么再进行equals方法的比较,如果equals方法返回true,说明对象已经存在,所以不加进去了,否则加进去。

 

(三)HashSet里面并没有get()方法,那么我们就要用迭代器Iterator

 

迭代器(Iterator)模式,又叫做游标(Cursor)模式:

提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 从定义可见,迭代器模式是为容器而生。很明显,这里的容器对象是HashSet。

主要用到的方法主要有两个:

a)hasNext()方法:判断容器是否有下一个元素,是的话返回true,不存在的话返回false。

b)next()方法:取出下一个元素。

 

那么,如何用迭代器来输出HashSet的内容呢,看下面代码:

bubuko.com,布布扣

上述代码生成了一个 Iterator 对象, while结构利用hasNext()方法遍历HashSet的元素,再利用next()方法访问。

 

Hashset,Iterator

原文:http://www.cnblogs.com/vmax-tam/p/4074640.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!