iterator的理解与用法
2013-08-29 14:48
423 查看
在Iterator类中,我们经常用到两个方法: hasNext(), next(),
具体含义: next(), 是返回当前元素, 并指向下一个元素。
hasNext(), 则是判断当前元素是否存在,并指向下一个元素(即所谓的索引)
原理模拟:
public boolean hasNext() {return cursor != size();}public Object next() {checkForComodification();try {Object next = get(cursor);lastRet = cursor++;return next;} catch(IndexOutOfBoundsException e) {checkForComodification();throw new NoSuchElementException();}}由此可看出,两个方法的作用与区别。
用法举例:
Map map=new HashMap();
map.put('1','Tom');
map.put('2','Jim');
Set keySet=map.keySet();
Iterator iterator=keySet.iterator();
while(iterator.hasNext())
{
String key=(String)iterator.next;
}
iterator与for、list区别,具体如下:
需要取list里面每个元素的时候,
Iterator it = list.iterator();
while (it.hasNext()) {
Id= (String) it.next();
}
和
for(int i=0;i<list.size();i++){
Id=(String)list.get(i);
} 两种写法都可以,但是尽量用前一种,因为如果以后你的代码改了,list不在是list接口了,而是set接口(没有get(i)方法),这时你的代码改动就大了,for里面全部要重写。当然,jdk 1.5以后,也可以
List <String> list = new ArrayList <String>();
for (String s:list) {
System.out.println(s);
}
具体含义: next(), 是返回当前元素, 并指向下一个元素。
hasNext(), 则是判断当前元素是否存在,并指向下一个元素(即所谓的索引)
原理模拟:
public boolean hasNext() {return cursor != size();}public Object next() {checkForComodification();try {Object next = get(cursor);lastRet = cursor++;return next;} catch(IndexOutOfBoundsException e) {checkForComodification();throw new NoSuchElementException();}}由此可看出,两个方法的作用与区别。
用法举例:
Map map=new HashMap();
map.put('1','Tom');
map.put('2','Jim');
Set keySet=map.keySet();
Iterator iterator=keySet.iterator();
while(iterator.hasNext())
{
String key=(String)iterator.next;
}
iterator与for、list区别,具体如下:
需要取list里面每个元素的时候,
Iterator it = list.iterator();
while (it.hasNext()) {
Id= (String) it.next();
}
和
for(int i=0;i<list.size();i++){
Id=(String)list.get(i);
} 两种写法都可以,但是尽量用前一种,因为如果以后你的代码改了,list不在是list接口了,而是set接口(没有get(i)方法),这时你的代码改动就大了,for里面全部要重写。当然,jdk 1.5以后,也可以
List <String> list = new ArrayList <String>();
for (String s:list) {
System.out.println(s);
}
相关文章推荐
- effective stl 第28条:正确理解由reverse_iterator的base()成员函数所长生的iterator的用法
- std::ostream_iterator用法
- C语言中const的用法和理解
- enum以及位域运算符的高级用法(详解-最易理解位域运算的教程)
- Java学习之Iterator(迭代器)的一般用法
- struts jsp iterator 用法
- time(), time_t, localtime(), localtime_r()的理解和用法
- Android 基础总结:(九)Content Provider用法和理解
- 对于block的理解及用法的注意
- 深入理解C++中public、protected及private用法
- 在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
- Java学习之Iterator(迭代器)的一般用法 (转)
- Android OpenGL ES零基础系列(一):理解GLSurfaceView,GLSurfaceView.Render的基本用法
- Thread.Join()用法的理解
- 对小程序中的Tabbar 的用法的理解总结
- 深入理解ConcurrentMap.putIfAbsent(key,value) 用法
- C++学习之深入理解迭代器——迭代器特性、迭代器标志-iterator_traits
- Java学习之Iterator(迭代器)的一般用法
- 完成端口的深入理解及一种变态用法
- istream_iterator 与 ostream_iterator 简单的用法