public class ex12 { /**
* @param args
*/
List<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
List<Integer> list2 = new ArrayList<Integer>(5);
ListIterator<Integer> it = list.listIterator();
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
List<Integer> list2 = new ArrayList<Integer>(5);
ListIterator<Integer> it = list1.listIterator();
while(it.hasPrevious()){
list2.add(it.previous());
}
System.out.println(list2);
}} //output:
//[]thinkin java 里面的练习 创建一个List<Integer> list1 , 然后创建另一个同样尺寸的List<Integer> list2 , 然后用ListIterator 读取list1中的元素并反序插入到list2中
而在我写的这个类里面 it.hasPrevious 结果是false 请问这个是为什么 还有应该怎么做? 谢谢谢谢
* @param args
*/
List<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
List<Integer> list2 = new ArrayList<Integer>(5);
ListIterator<Integer> it = list.listIterator();
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
List<Integer> list2 = new ArrayList<Integer>(5);
ListIterator<Integer> it = list1.listIterator();
while(it.hasPrevious()){
list2.add(it.previous());
}
System.out.println(list2);
}} //output:
//[]thinkin java 里面的练习 创建一个List<Integer> list1 , 然后创建另一个同样尺寸的List<Integer> list2 , 然后用ListIterator 读取list1中的元素并反序插入到list2中
而在我写的这个类里面 it.hasPrevious 结果是false 请问这个是为什么 还有应该怎么做? 谢谢谢谢
楼主【coldanimal】截止到2008-07-15 23:06:30的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;public class Test { public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<Integer>(5);
ListIterator<Integer> it = list1.listIterator(5);
/*
while (it.hasNext()) {
it.next();
}
*/
while (it.hasPrevious()) {
list2.add(it.previous());
}
System.out.println(list2);
}
} ListIterator <Integer> it = list1.listIterator();
按照这种方式得到的迭代器其元素指针从第一个元素开始,所以你用hasPrevious()得到的结果为false,循环不会执行.
所以解决方法是在创建迭代器的时候指定其开始迭代的位置,或者先通过next操作把指针移到最后,再进行previous操作.见注释中的代码