黑马程序员技术交流社区
标题:
迭代器问题
[打印本页]
作者:
黄邦荣
时间:
2012-10-26 13:21
标题:
迭代器问题
package itcast;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void sop(Object obj) {
System.out.println(obj);
}
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add("1");
al.add("2");
al.add("3");
al.add("4");
Iterator it= al.iterator();
while(it.hasNext());
{
sop("next:"+it.next());
}
}
}
编译能通过,但是没结果,这是什么情况,纠结了半小时了
未命名.jpg
(39.23 KB, 下载次数: 21)
下载附件
2012-10-26 13:14 上传
作者:
周万谋
时间:
2012-10-26 13:28
本帖最后由 周万谋 于 2012-10-26 13:33 编辑
首先,你的代码中添加的元素是String类型,那么在用迭代器取的时候需要强制类型转换,因为迭代器取出来的对象是Object类型的,
String str = (String) it.next();
其次,建议使用泛型,泛型可以限制添加的是同一个类型,泛型还可以将运行时异常转至编译期,泛型还有一个很爽的优点,取出的元素可以不用强转,建议这样写:
ArrayList<String> al = new ArrayList<String>();
......
作者:
范贞亮
时间:
2012-10-26 13:34
兄弟, 问题是你的while()后面有个分号 啊 , 下次小心点啊!
作者:
鲁中需
时间:
2012-10-26 13:41
3楼正解,细节决定成败。
作者:
陈琦
时间:
2012-10-26 14:02
一失足成千古恨啊
作者:
齐连涛
时间:
2012-10-26 15:08
要么在定义集合的时候定义泛型,要么就在迭代时强转
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2