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 请问这个是为什么  还有应该怎么做? 谢谢谢谢

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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
      

  2.   

    import java.util.ArrayList;
    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操作.见注释中的代码