为什么这个程序运行后光标一直闪动没有结束标志?

u010179812 2014-02-21 04:54:22
import java.util.*;

public class Test
{
public static void main(String[] args)
{
List<String> a = new LinkedList<String>();
a.add("abc");
a.add("eee");
a.add("ooo");
a.add("fff");

List<String> b = new LinkedList<String>();
b.add("efg");
b.add("eee");
b.add("www");
b.add("aaa");

ListIterator<String> aa = a.listIterator();
ListIterator<String> bb = b.listIterator();

while(bb.hasNext()) //将b插入a中。
{
if(aa.hasNext())
{
aa.next();
aa.add(bb.next());

}
}

System.out.println(a);

a.removeAll(b); //从a中移去b.
System.out.println(a);

ListIterator<String> cc = a.listIterator();
while(cc.hasNext()) //移去a中所有元素。
{
try
{
a.remove(cc.next());
}
catch(Exception e)
{
System.out.println("1234");
}

}
System.out.println(a);



}
}

运行的结果是
...全文
265 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010179812 2014-02-21
  • 打赏
  • 举报
回复
谢谢楼上两位,我找到错误了。把第二个while里面改成这样就行了。
while(cc.hasNext())        //移去a中所有元素。
{			
	cc.next();
	cc.remove();						
}
我还真是糊涂了,List里面好像也有remove, 比如我开始在第二个while中写a.remove(cc.next());因为不是可以这样写吗a.remove("eee");不是吗?所以我在第二个while中就那样写了,其实应该写成跌代器中的remove().且括号中没有参数。还容易弄混呀。
AndyXuq 2014-02-21
  • 打赏
  • 举报
回复
断点调试一下试试。。你就明白了。。
Test_LD 2014-02-21
  • 打赏
  • 举报
回复
死循环-------------------------

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧