2012-01-26 14 views
-1

私は、一つ一つのために、整数とイテレータの2つのリストを持っているために、コードを書いています。第2のものは、第1のものと逆に構成されている。Javaのリスト反復子

私はイテレータを使用して、第2の1の値を表示に問題があります。それを修正するには(イテレーションを単純に使っていて、動作しますが、イテレータでやりたいと思います)。

import java.util.*; 

public class Ch11Ex12 { 
     public static void main(String[] args) { 

      List<Integer> li = new ArrayList<Integer>(); 
      li = Arrays.asList(1, 6, 4, 7); 
      //List<Integer> li2 = new ArrayList<Integer>(); 
      int z = li.size(); 
      List<Integer> li2 = new ArrayList<Integer>(); 

      /** 
      for (int index = 0; index < ints.length; index++) 
      { 
       li.add(ints[index]); 
      } 
      **/ 
      ListIterator<Integer> it = li.listIterator(z); 
      ListIterator<Integer> it2 = li2.listIterator();   
      while(it.hasPrevious()){ 
       //System.out.print(it.previous() + " "); 
       int k = it.previous(); 
       System.out.print(k + " "); 
       li2.add(k); 
      } 
      /** 
      for (int f = 0; f < li2.size(); f++){ 
       System.out.println(li2.get(f)); 
      } 
      **/ 
      while(it2.hasNext()){ 
       int p = it2.next(); 
       System.out.print(p + " "); 
      }  
    } 
} 
+0

イテレータで)。 - これは動作しません。 – aretai

答えて

4

li2を書き込んだ後に2番目のIterator it2を定義します。 「私はそれを修正するためにどのようにイテレータを使用して、第2の1の値を表示に問題がある(私は反復のための簡単な使用していることに注意して、それが動作しますが、それをしたい:私はそれを入力したと思う

 ListIterator<Integer> it = li.listIterator(z);  
     while(it.hasPrevious()){ 
      //System.out.print(it.previous() + " "); 
      int k = it.previous(); 
      System.out.print(k + " "); 
      li2.add(k); 
     } 

     /** 
      Now that I have filled li2, I create my ListIterator it2. 
     **/ 
     ListIterator<Integer> it2 = li2.listIterator(); 
     while(it2.hasNext()){ 
      int p = it2.next(); 
      System.out.print(p + " "); 
     } 
+0

正解ありがとうございました – aretai