问下java 的 ListIterator 的问题
为什么一下程序的结果是这样的:code:importjava.util.*;publicclassTest{publicstaticvoidmain(Stringargs...
为什么一下程序的结果是这样的:
code:
import java.util.*;
public class Test {
public static void main (String args[]) {
String elements[] = {"Noodle", "Rice", "Juice", "Vegetable"};
int i=0;
List list = new LinkedList(Arrays.asList(elements));
ListIterator iter = list.listIterator(list.size());
while(iter.hasPrevious()){
if (iter.previous().equals("Rice")){
iter.set("aa");
}
System.out.println(iter.previous());
} } }
输出结果:
Juice
Noodle
为什么 Vegetable 没输出来? 如果我没set的话 就有。 展开
code:
import java.util.*;
public class Test {
public static void main (String args[]) {
String elements[] = {"Noodle", "Rice", "Juice", "Vegetable"};
int i=0;
List list = new LinkedList(Arrays.asList(elements));
ListIterator iter = list.listIterator(list.size());
while(iter.hasPrevious()){
if (iter.previous().equals("Rice")){
iter.set("aa");
}
System.out.println(iter.previous());
} } }
输出结果:
Juice
Noodle
为什么 Vegetable 没输出来? 如果我没set的话 就有。 展开
5个回答
展开全部
while(iter.hasPrevious()){
if (iter.previous().equals("Rice")){
iter.set("aa");
}
System.out.println(iter.previous());
}
每调用一次previous()都会使迭代器的指针发生移动
你在循环里边用了两个iter.previous()
这样就会在一次循环里跳过两次previous()
不信你试一下如果你的elements[]数组里边是奇数个元素,会发生错误
你需要用一个临时变量来实现依次循环使用一个previous()
String temp="";
while(iter.hasPrevious()){
temp=iter.previous();
if (temp.equals("Rice")){
iter.set("aa");
}
System.out.println(temp);
}
if (iter.previous().equals("Rice")){
iter.set("aa");
}
System.out.println(iter.previous());
}
每调用一次previous()都会使迭代器的指针发生移动
你在循环里边用了两个iter.previous()
这样就会在一次循环里跳过两次previous()
不信你试一下如果你的elements[]数组里边是奇数个元素,会发生错误
你需要用一个临时变量来实现依次循环使用一个previous()
String temp="";
while(iter.hasPrevious()){
temp=iter.previous();
if (temp.equals("Rice")){
iter.set("aa");
}
System.out.println(temp);
}
展开全部
你在两个地方用了下一个了,if (iter.previous().equals("Rice"))和System.out.println(iter.previous());
,输出的当然就减半了啊,取得第一个的时候就保存再来,避免用两次就行了
,输出的当然就减半了啊,取得第一个的时候就保存再来,避免用两次就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
iter.previous()这个方法不是下标,而是这个List的指针调一次挪一次,当然看不见了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序进入了死循环状态
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-29
展开全部
好像没有错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询