关于java的Iterator有点郁闷。这样怎么不能正常输出”cccc“
packagecom.axhu;importjava.util.*;publicclassTestIterator{publicstaticvoidmain(String...
package com.axhu;
import java.util.*;
public class TestIterator {
public static void main(String[] args) {
List a = new ArrayList();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for(Iterator it =a.iterator();it.hasNext();){
if(it.next()=="aa")
{ it.remove();}
System.out.println(it.next());
}
}
} 展开
import java.util.*;
public class TestIterator {
public static void main(String[] args) {
List a = new ArrayList();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for(Iterator it =a.iterator();it.hasNext();){
if(it.next()=="aa")
{ it.remove();}
System.out.println(it.next());
}
}
} 展开
5个回答
展开全部
程序有问题,应该是这样吧!
package com.axhu;
import java.util.*;
public class TestIterator {
public static void main(String[] args) {
List a = new ArrayList();
String temp=null;//定义一个临时变量
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for(Iterator it =a.iterator();it.hasNext();){
temp=(String)it.next();//将值放到temp中,用于后面的处理
if("aa".equals(temp))
{ it.remove();}
else{
System.out.println(temp);//输出的不为"aa"的内容,如果只要输出“ccc”就自己加上条件控制
}
}
package com.axhu;
import java.util.*;
public class TestIterator {
public static void main(String[] args) {
List a = new ArrayList();
String temp=null;//定义一个临时变量
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for(Iterator it =a.iterator();it.hasNext();){
temp=(String)it.next();//将值放到temp中,用于后面的处理
if("aa".equals(temp))
{ it.remove();}
else{
System.out.println(temp);//输出的不为"aa"的内容,如果只要输出“ccc”就自己加上条件控制
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ccc的输出被 if(it.next()=="aa")掠过了。
改成这样即可:
List a = new ArrayList();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for (Iterator it = a.iterator(); it.hasNext();) {
String temp = (String) it.next();
if (temp == "aa") {
it.remove();
} else {
System.out.println(temp);
}
}
改成这样即可:
List a = new ArrayList();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for (Iterator it = a.iterator(); it.hasNext();) {
String temp = (String) it.next();
if (temp == "aa") {
it.remove();
} else {
System.out.println(temp);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序一共两个问题,String的比较用equal比较好,然后在for循环里调用了两次it.next()以至于跳过了ccc。
public static void main(String[] args) {
List<String> a = new ArrayList<String>();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for (Iterator<String> it = a.iterator(); it.hasNext();) {
String temp=it.next();
if (temp.equals("aa")){
it.remove();
}else{
System.out.println(temp);
}
}
}
public static void main(String[] args) {
List<String> a = new ArrayList<String>();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for (Iterator<String> it = a.iterator(); it.hasNext();) {
String temp=it.next();
if (temp.equals("aa")){
it.remove();
}else{
System.out.println(temp);
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List a = new ArrayList();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
Iterator it = a.iterator();
int i=0;
while (it.hasNext()) {
i++;
String ly = (String)it.next();
if(ly.equals("aa")){
it.remove();
}else{
System.out.println(ly);
}
}
it.next() 这个意思是去下一个的值 而不是当前的值 经过测试 希望能帮到你
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
Iterator it = a.iterator();
int i=0;
while (it.hasNext()) {
i++;
String ly = (String)it.next();
if(ly.equals("aa")){
it.remove();
}else{
System.out.println(ly);
}
}
it.next() 这个意思是去下一个的值 而不是当前的值 经过测试 希望能帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法他们都写出来
不过现在其实iterator用的很少了
因为java5.0加入了新的for循环
public static void main(String[] args) {
List<String> a = new ArrayList<String>();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for(String s : a)
{
System.out.println(s);
}
这样多简单..
不过现在其实iterator用的很少了
因为java5.0加入了新的for循环
public static void main(String[] args) {
List<String> a = new ArrayList<String>();
a.add("aa");
a.add("bbb");
a.add("cccc");
a.add("ddddd");
for(String s : a)
{
System.out.println(s);
}
这样多简单..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询