A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李会成 中级黑马   /  2013-2-3 19:46  /  1939 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李会成 于 2013-2-4 15:16 编辑

视频最后毕老师说老外用for循环来操作Iterator
视频中美编译。我按照老师写的一样写了下。编译不成功。求教要怎么写for
错误:
Lxi.java:16: 错误: 程序包a1不存在
                for (Iterator it=new a1.iterator();it.hasNext
                                       ^
注: Lxi.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
1 个错误
  1. import java.util.*;
  2. class LxiDemo
  3. {
  4. public static void main(String[] args)
  5. {
  6. method_get();
  7. }

  8. public static void method_get()
  9. {
  10. ArrayList a1=new ArrayList();
  11. a1.add("java01");
  12. a1.add("java02");
  13. a1.add("java03");
  14. a1.add("java04");
  15. for (Iterator it=new a1.iterator();it.hasNext() ; )
  16. {
  17. sop(it.next());
  18. }
  19. }
  20. public static void sop(Object obj)
  21. {
  22. System.out.println(obj);
  23. }
  24. }
复制代码

7 个回复

倒序浏览
本帖最后由 铿锵科技 于 2013-2-3 20:27 编辑

import java.util.*;
class LxiDemo
{
public static void main(String[] args)
{
method_get();
}

public static void method_get()
{
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");
for (Iterator it=new a1.iterator();it.hasNext() ; )
{
sop(it.next());
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
你多了一个new
for (Iterator it=a1.iterator()/*这里是取得a1的迭代,你new就不是取得,是新建,新建时你没有定义a1类实现iterator方法会报错*/;it.hasNext() ; )

评分

参与人数 1技术分 +1 收起 理由
黄锦成 + 1

查看全部评分

回复 使用道具 举报
兄弟,lterator是接口!!!不能直接new对象
回复 使用道具 举报
朋友,a1.iterator()的返回值就是你要的Iterator对象,所以不需要你使用new的方式来创建。

评分

参与人数 1黑马币 +6 收起 理由
黄锦成 + 6

查看全部评分

回复 使用道具 举报
import java.util.*;
class LxiDemo
{
public static void main(String[] args)
{
method_get();
}

public static void method_get()
{
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");

for (Iterator it=a1.iterator(); it.hasNext();)//这里应该写成这样
{
sop(it.next());
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}

//Iterator it=new a1.iterator();这样写肯定不对,不能new的
//注: Lxi.java使用了未经检查或不安全的操作。 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
//出现这个提示是因为没定义泛型,但是不会影响编译和运行,等以后加了泛型就不会提示了

评分

参与人数 1技术分 +1 收起 理由
黄锦成 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 杨杨 于 2013-2-4 10:22 编辑

接口不能被实例化
new 操作符 后面一般跟类 你跟了个对象,
你对接口操作符 类对象 他们之间的关系有点混吧
回复 使用道具 举报
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。

请勿再次发此类帖子了!

此贴就关闭了。此后如有再次发现直接封禁处理,请看到此贴的会员也加以注意。
回复 使用道具 举报
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。

请勿再次发此类帖子了!

此贴就关闭了。此后如有再次发现直接封禁处理,请看到此贴的会员也加以注意。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马