• ベストアンサー

Itaratorから値を取得するには?

ArrayList<String> list = new ArrayList<String>(); list.add("その1"); list.add("その2"); list.add("その3"); list.add("その4"); Itarator itar = list.itarator(); while(itar.hasNext()){ System.out.println(itar.toString); itar.Next(); } 上記のように記述するとコンソールには その1 その2 その3 その4 というように出力されることを期待したのですが 結果はitar自身の値が返ってきてしまいました。 Itaratorを使用して、ArrayListの値を出力させるには どうすればよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

//記述にスペルミスが多いです //【誤】Itarator //【正】Iterator class Q4005042A{ public static void main(String[] args){ java.util.ArrayList<String> list = new java.util.ArrayList<String>(); list.add("その1"); list.add("その2"); list.add("その3"); list.add("その4"); //Iterator側でも型を指定 java.util.Iterator<String> itar = list.iterator(); while(itar.hasNext()){ String str = itar.next(); //値を取得。nextメソッドは小文字です System.out.println(str); } } }

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

/** ○ toString()の正しい使い方 ○ 正規表現が苦手なので、いつものようにアルゴリズムで頑張ってみる。 iterator()はどっか行っちゃったけど、逆に型変換の勉強にはなるかな~と。 */ import java.util.*; public class ToString{  public static void main(String... _$){   ArrayList<String> list = new ArrayList<String>();   list.add("その1");   list.add("その2");   list.add("その3");   list.add("その4");   System.out.println("list.toString() → " + list.toString() + "\n");   // とりあえずは、[その1, その2, その3, その4]を、ゲット。   String toString = list.toString();   ToStringLabel : for(int i=1;i<toString.length()-1;i++){ // 最初と最後の中括弧はいらない。    char toStringChar = toString.charAt(i);    // 値からオブジェクト生成後にその文字列を取得。(敢えて、文字列連結演算子を使わず。)    String toStringCharacter = Character.valueOf(toStringChar).toString();    if(toStringCharacter.equals(",")){     System.out.println();     i = i + 1; // ","のすぐ後ろに、半角スペースがあるため。     continue ToStringLabel; // ループが1つの時は、ラベルは無くても同じ。    }    System.out.print(toStringChar);   }    System.out.print("\n");  } }

すると、全ての回答が全文表示されます。
  • BleuLune
  • ベストアンサー率57% (15/26)
回答No.2

No1さんがすでにお答えされているので、 質問の趣旨と違いますが、別解を書いてみます。(5.0以降) public class hoge{ public static void main(String args[]){ ArrayList<String> list = new ArrayList<String>(); list.add("その1"); list.add("その2"); list.add("その3"); list.add("その4"); for(String str : list){ System.out.println(str); } } } あと、補足になりますが、 toStringメソッドはオブジェクトの値を返すだけです。つまりtoStringメソッドで自分が望む値を出力させるにはオーバーライドが必要になります。

すると、全ての回答が全文表示されます。

関連するQ&A