有关Iterator的一个问题没懂。 这里面c.iterator();是直接意思,没看懂是直接调用接口? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不明白你说什么, c.iterator(), 返回的是 ArrayList 自己的一个内部类, 这个内部类实现了Iterator 接口 Java 集合 之 Iterator 迭代器 http://www.verejava.com/?id=17159874583439 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。 (2) 使用next()获得序列中的下一个元素。 (3) 使用hasNext()检查序列中是否还有元素。 (4) 使用remove()将迭代器新返回的元素删除。 Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。 迭代器应用:复制代码 list l = new ArrayList(); l.add("aa"); l.add("bb"); l.add("cc"); for (Iterator iter = l.iterator(); iter.hasNext();) { String str = (String)iter.next(); System.out.println(str); } /*迭代器用于while循环 Iterator iter = l.iterator(); while(iter.hasNext()){ String str = (String) iter.next(); System.out.println(str); } */复制代码 Iterator的接口定义: public interface Iterator { boolean hasNext(); Object next(); void remove(); } 使用: Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型 boolean hasNext():判断容器内是否还有可供访问的元素 void remove():删除迭代器刚越过的元素迭代使用方法:(迭代其实可以简单地理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类)for(Iterator it = c.iterator(); it.hasNext(); ) { Object o = it.next(); //do something } c.iterator(); 是java中迭代器的意思不是直接的意思 去看java api Collection类里的 iterator方法Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。关于元素返回的顺序没有任何保证(除非此 collection 是某个能提供保证顺序的类实例)。 指定者: 接口 Iterable<E> 中的 iterator 返回: 在此 collection 的元素上进行迭代的 Iterator 希望采纳 我来解答一下吧 楼主 你点进去Iterator,会发现里面是空的,因为你看到的是Collection接口中的东西,此时还没实现那么 真正的实现在哪里呢?废话不多说, 以你这个例子为例 点开ArrayList类的源码 找到iterator方法看到new Itr()了吧 继续跟踪 点进去可以看到 调用接口真正调用的方法的是ArrayList类中的iterator()方法 真正返回的实例是ArrayList类中的一个内部类Itr的实例纯手打 总结不易 还望采纳~ 就是把所有实现Collection接口的类可以转化成一个迭代器(说白了实质就是一个list一样的存在),你可以直接使用Iterator的方法去操作这个类.比如说 list set等 .这两个都可以直接转化成iterator,然后使用 remove 或者next 方法去操作.但是值得注意的是 如果转化为iterator后,对于之前的list 或者set是不能进行操作的.如果进行操作会报错的! 1、c是ArrayList类的实例对象,ArrayList这个类里面有一个iterator()方法,这个iterator()方法返回值类型是Iterator<E>。2、为什么要调iterator()方法呢,主要是为了输出ArrayList这个集合中的值,输出集合的方法,一般是用foreach语句或者调用iterator()这个方法。3、iterator()方法返回值类型是Iterator<E>,所以对象类型Iterator,这个Iterator<E>接口里面有hasNext()方法和forEachRemaining方法。这时就可以调用Iterator<E>的这两个方法,输出集合内容了。 iterator() 是集合的迭代器,是一个方法,直接调用的 对话框打开后,如何设置背景窗口的激活状态? 关于远程访问文件的问题????? Jcreator 默认打开快捷键不能用,还得到配置->自定义->键盘->全部重置 JAVA如何访问MYSQL的存储过程 如何将String类型转化为Timestamp类型 高手大师请进来指教一下!急啊!!!!!!!!!!!!!! 怎么去掉JFrame右上角关闭的× 关于数字类型自动转换,请问怎么使用Number类,请大家帮忙看看,谢谢. 关于环境变量 急:java 中数组的输入问题 局部内部类不是只能访问final修饰的局部变量吗?为什么我的会编译成功? IO流问题,怎么把,,数组中的数据写入文件
list l = new ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
/*迭代器用于while循环
Iterator iter = l.iterator();
while(iter.hasNext()){
String str = (String) iter.next();
System.out.println(str);
}
*/
复制代码
Iterator的接口定义: public interface Iterator {
boolean hasNext();
Object next();
void remove();
}
使用: Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型 boolean hasNext():判断容器内是否还有可供访问的元素 void remove():删除迭代器刚越过的元素迭代使用方法:(迭代其实可以简单地理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类)for(Iterator it = c.iterator(); it.hasNext(); ) {
Object o = it.next();
//do something
}
接口 Iterable<E> 中的 iterator 返回:
在此 collection 的元素上进行迭代的 Iterator
希望采纳
纯手打 总结不易 还望采纳~
比如说 list set等 .
这两个都可以直接转化成iterator,然后使用 remove 或者next 方法去操作.
但是值得注意的是 如果转化为iterator后,对于之前的list 或者set是不能进行操作的.
如果进行操作会报错的!
2、为什么要调iterator()方法呢,主要是为了输出ArrayList这个集合中的值,输出集合的方法,一般是用foreach语句或者调用iterator()这个方法。
3、iterator()方法返回值类型是Iterator<E>,所以对象类型Iterator,这个Iterator<E>接口里面有hasNext()方法和forEachRemaining方法。这时就可以调用Iterator<E>的这两个方法,输出集合内容了。