Java容器之Iterator接口
Iterator 接口:
1. 所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象.
2. Iterator 对象称作迭代器,用以方便的实现对容器内元素的遍历操作.
3. Iterator 接口定义了如下方法:
boolean hasNext():如果仍有元素可以迭代,则返回 true;
object next():返回迭代的下一个元素。抛出:NoSuchElementException - 没有元素可以迭代;
void remove():删除游标左边的元素,在执行完next之后,该操作只能执行一次.


【注】:Iterator 就是一个统一的用来遍历Collection中所有元素的方法;
Demo_1:
import java.util.*;
class Name {
private String firstName, lastName;
public Name(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String toString() {
return firstName+" "+lastName;
}
}
public class Test {
public static void main(String[] args) {
Collection c = new HashSet(); //
c.add(new Name("f1","l1"));
c.add(new Name("f2","l2"));
c.add(new Name("f3","l3"));
Iterator i = c.iterator(); // 使用迭代器访问HashSet中的每一个元素(要求每个元素类型一致)
while(i.hasNext()){
Name n = (Name)i.next(); // next()返回值为object类型,需要转换为相应类型
System.out.println(n);
}
}
}
Demo_1 运行结果:
f3 l3
f1 l1
f2 l2
Demo_2:
import java.util.*;
class Name {
private String firstName, lastName;
public Name(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String toString() {
return firstName+" "+lastName;
}
}
public class Test {
public static void main(String[] args) {
Collection c = new HashSet(); //
c.add(new Name("f1","l1"));
c.add(new Name("f2","l2"));
c.add(new Name("f3","l3"));
c.add(12.59);
c.add("Hello");
ArrayList cc = new ArrayList(c); // 不适用迭代器访问Set中的元素
for(int i=0;i<cc.size();i++){
System.out.println(cc.get(i));
}
}
}
Demo_2 运行结果:
f3 l3
12.59
Hello
f1 l1
f2 l2
Demo_3:
import java.util.*;
public class Test {
public static void main(String[] args) {
Collection c = new HashSet(); //
c.add(123);
c.add(123.56);
c.add(234);
c.add(32);
c.add("hello");
Iterator i = c.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
}
Demo_3 运行结果:
123.56
32
234
123
hello
Iterator 对象的 remove 方法是在迭代过程中删除元素的唯一安全的方法:
import java.util.*;
public class Test {
public static void main(String[] args) {
HashSet c = new HashSet();
c.add("hello");
c.add("you");
c.add("are");
c.add("good");
c.add("Hoodlum");
for(Iterator i = c.iterator();i.hasNext();){
if(i.next().toString().length()<4){
i.remove();
}
}
System.out.println(c);
}
}
运行结果:[hello, good, Hoodlum]
Java容器之Iterator接口的更多相关文章
- Java容器之Map接口
Map 接口: 1. 实现 Map 接口的类是用来存储键-值(key-value)对: 2. Map 接口的实现类有 HashMap 和 TreeMap 等: 3. Map 类中存储的键-值对,通过键 ...
- Java容器之List接口
List 接口: 1. List 接口是 Collection 的子接口,实现 List 接口的容器类中的元素是有顺序的,而且可以重复: 2. List 容器中的元素都对应一个整数型的序号记载其在容器 ...
- Java容器之Set接口
Set 接口: 1. Set 接口是 Collection 的子接口,Set 接口没有提供额外的方法,但实现 Set 接口的容器类中的元素是没有顺序的,且不可以重复: 2. Set 容器可以与数学中的 ...
- Java 容器之Hashset 详解
Java 容器之Hashset 详解.http://blog.csdn.net/nvd11/article/details/27716511
- Java 容器之 Connection栈队列及一些常用
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...
- java中的Iterator接口
Iterator接口 Iterator接口也是Java集合框架的成员,但它与Collection系列.Map系列的集合不一样:Collection系列集合.Map系列集合主要用于盛装其他对象,而Ite ...
- Java容器之旅:容器基础知识总结
下图展示了Java容器类库的完备图,包括抽象类和遗留构件(不包括Queue的实现). 常用的容器用黑色粗线框表示,点线框表示接口,虚线框表示抽象类,实线框表示类,空心箭头表示实现关系.Produce表 ...
- Java容器之Collections
Collections 类来源于 java.util.Collections,从 java.lang.object继承. 此类完全由在 collection 上进行操作或返回 collection 的 ...
- Java容器之HashMap源码分析
在java的容器框架中,hashMap是最常用的容器之一,下面我们就来深入了解下它的数据结构和实现原理 先看下HashMap的继承结构图 下面针对各个实现类的特点进行下说明:1)HashMap: 它是 ...
随机推荐
- Array方法学习小结
原生js forEach()和map()遍历 A:相同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...
- vue组件间传值详解
1.父传子----传值要点: <1> 在组件注册的时候必须要使用 return 去返回 data对象;
- ckeditor + ckfinder + oss存储
ckeditor 与 ckfinder 的整合方法 网上有很多,这里我也就不说了. (主要是以前整合的现在忘记咋弄的了0.0) 我这里整合后直接使用js代码 <script type=&quo ...
- IE8 如何 不显示 选项 卡,直接在任务显示 各个页面?
IE8 如何 不显示 选项 卡,直接在任务显示 各个页面? 在 工具->Internet 选项(o) ->常规--选项卡-设置->把第一个勾去掉 “启用选项卡浏览(需要重新启动 ...
- spark sql cache时发现的空字符串问题
博客园首发,转帖请注明地址:https://www.cnblogs.com/tzxxh/p/10267202.html 图一 图1未做cache,直接过滤expression列的 null 和空字符串 ...
- python学习笔记:第21天 常用内置模块之collections和time
目录 一.collections模块 二.时间模块 也可以在我的个人博客上阅读 一.collections模块 1. Counter Counter是⼀个计数器,主要⽤统计字符的数量,之前如果我们要统 ...
- shell基础笔记
什么是shell脚本 我自己对shell脚本的理解就是一系列的shell命令加入逻辑关系,实现类似"批处理"的功能.而不是简单的命令的堆砌,那样的shell脚本bug重重. 脚本开 ...
- 笔记-sql语句
笔记-sql语句 1. sql语句基础 虽然经常使用sql语句,但没有一个整体式的文档,整理了一下. 1.1. select foundation: select <colnum ...
- Git中分支merge和rebase的适用场景及区别
Git merge是用来合并两个分支的. git merge b # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 原理 如下: 假设你现在基于远程分 ...
- 成都Uber优步司机奖励政策(1月23日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...