为什么一下程序的结果是这样的:
code:
import java.util.*;
public class Test {
public static void main (String args[]) {
String elements[] = {"Apple", "Samsung", "Lenovo", "MOTO"};
int i=0;
List list = new LinkedList(Arrays.asList(elements));
ListIterator iter = list.listIterator(list.size());
while(iter.hasPrevious()){
if (iter.previous().equals("Samsung")){
iter.set("aa");
}
System.out.println(iter.previous());
} } }
List<String> list = new LinkedList<String>(Arrays.asList(elements));
ListIterator<String> iter = list.listIterator(list.size());
while (iter.hasPrevious()) {
// if (iter.previous().equals("Samsung")) {
// iter.set("aa");
// }
System.out.println(iter.previous());
}
}
}
复制代码
下面是我查询的API你仔细看看,如果你发现我哪回答的不好 希望得到你的回复!!!!
previous()返回列表中的前一个元素。可以重复调用此方法来迭代列表,或混合调用 next 来前后移动(注意交替调用 next 和 previous 将重复返回相同的元素)。
返回:
列表中的上一个元素。
void set(E e)用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。只有在最后一次调用 next 或 previous 后既没有调用 ListIterator.remove 也没有调用 ListIterator.add 时才可以进行该调用。
参数:
e - 用于替换 next 或 previous 返回的最后一个元素的元素。作者: 田光峰 时间: 2013-4-5 21:11
为什么一下程序的结果是这样的:
code:
import java.util.*;
public class Test {
public static void main (String args[]) {
String elements[] = {"Apple", "Samsung", "Lenovo", "MOTO"};
int i=0;
List list = new LinkedList(Arrays.asList(elements));
ListIterator iter = list.listIterator(list.size());
while(iter.hasPrevious()){
if (iter.previous().equals("Samsung")){
iter.set("aa");
}
System.out.println(iter.previous());
} } }
iter.hasPrevious()是从后面判断元素是否存在,iter.previous()是获取元素
hasnext()是从前面判断元素是否存在,next()是获得元素。
iter.previous()每调用一次就会向前移动一次,而在
if (iter.previous().equals("Samsung")){
iter.set("aa");
}
System.out.println(iter.previous());
中调用了两次所以只有两个值。