码迷,mamicode.com
首页 > 其他好文 > 详细

集合3

时间:2018-02-02 00:40:02      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:ext   next   格式   删除元素   获取   就是   move   设计   log   

迭代器

说明:迭代器是一种设计模式,它是一个对象,可以遍历并选择序列中的对象,而开发人员

不需要了解该序列结构。迭代器通常被称为“轻量级”对象,因为创建它代价小。forEach是

在Java1.5版本之后,使用的一种比较简洁的遍历List的方法。

相关知识与实施步骤:

如Set序列当中的值;

Iterator <Student>it=set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

Iterator来遍历map中的值序列
Iterator <Student>it=map.values().iterator();
while(it.hasNext()){
Sysem.out.println(it.next());
}

hasNext():如果next返回了元素而不是抛出异常,则返回true。

返回:如果迭代器具有多个元素,则返回true。

 

思路:

先用集合对象的iterator()方法来获取Iterator对象;然后再通过Iterator的.hasNext()方法来判断是

否有元素,有则返回true,否则返回false来作为循环判断条件;最后再循环里面用next()方法来获

取元素对象。

 

Iterator接口

1.Iterator定义

格式:<<interface>>Iterator

作用:对于某个序列实现该interface,功能是“使用”迭代器。

如:

public interface Iterator<E>{

boolean hasNext();//判断是否存在下一元素

E next();

void remove();

}

2.Iterator接口

Iterator接口功能“返回”一个迭代器。

另外,Iterator接口被foreach语句用来在序列中移动,

import Java.util.Iterator;

public interface Iterable<T>{

Iterator <T>iterator();

}

3.Iterator的方法

此方法可删可查,可以两个方向遍历List,可在List中插入和删除元素。

4.Iterator与泛型搭配

由于集合类中装入的对象类型(list或set)不确定,而从集合中取出来的

都是Object类型,在使用时较麻烦,这是就引入了泛型,提前告诉了集合

要装入的类型,这样就可以直接使用而不用显示类型转换。

5.for循环与迭代器的效率对比

for循环适合访问顺序结构,而Iterator适合访问链式结构,因为迭代器是通过

next()和pre()来定位的,可以没有顺序的集合。

 

泛型

为什么要引入泛型?作用是什么?

泛型是java语言的类型相同的一种扩展,以支持创建可以按类型进行参数化的类。

可以把类型参数看做使用参数化类型指定类型的占位符,就行形参是运行时传递值

一样的符号。

 

好处1:用到了泛型时,可增强程序的安全和健壮性,有点类似于JDK中的某些标注(例如override)。

 

还有个好处就是在用forEach遍历集合时,不需要进行强制转换。

for(String name:classes){

System.out.println(num+”:\t”+name);

num++;

}

好处2:若上面的语句没通过泛型说明String类型,则for循环会报错(理由:上面第四点)

集合3

标签:ext   next   格式   删除元素   获取   就是   move   设计   log   

原文地址:https://www.cnblogs.com/shijinglu2018/p/8401719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!