• ベストアンサー

ArrayList

課題プログラムの中で、いくつかArrayListを使ったメソッドを作って動かすものが出題されているのですが、そのうち「ArrayListの文字を反転させて出力する」というのがわかりません。 何を使ったらよいでしょうか? ちなみに、私の書いたプログラムの中では、 ArrayList<String> list = new ArrayList<String>(); としていますので、それで書いて下さると嬉しいです。 また、課題の中で、listの中に入っているのは、String型のアルファベット10個です。 教えて下さい、よろしくお願いします。 ▼参考API http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/ArrayList.html

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

  • ベストアンサー
noname#18558
noname#18558
回答No.4

こういうことでしょうか? ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); for ( int i = list.length - i; i >= 0; i++ ) { System.out.println(list.get(i)); }

mygw_rumba
質問者

お礼

あぁなるほど、list自体を変えるのではなく、表示だけを変えているのですね…それでいいのかもしれません。 有難うございました。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>for(String str : list)とするとどうなるのですか? list の中の要素を1つずつ取り出しstr に設定してループします。 つまり、ArrayList<String> に設定した内容を1つずつ取り出し処理するループです。 #1>ArrayListを使って、という指示にはあっていませんよね…。 ArrayList を使うという意味によると思います。 例えば、 <1>,<2>,<3> という並びのリストがあった時に <3>,<2>,<1> のいう順番に取り出すという意味なら、#2は、全然違いますけど、 >文字を反転させて出力する という意味が ArrayList の要素である"ABC" を"CBA" のように表示するという意味なら、 String のデータをArrayList のメソッドで操作することはできませんので String , もしくはそれに類するクラスのメソッドで操作することになろうかと思います。 意図するところを勘違いしていたら、どのように違うのかを補足してください。

mygw_rumba
質問者

お礼

for(String str : list)の説明、有難うございました。わかりました! 先生の説明っぷりから、おそらくArrayListのメソッドで、という意味だと思うので、出来ればArrayList内で表現したいと思います。 いろいろ有難うございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

//意図に沿っているかはわかりませんが import java.util.*; public class Sample { public static void main(String argv[]){ ArrayList<String> list = new ArrayList<String>(); list.add("ADAM"); list.add("EVE"); list.add("CAIN"); list.add("ABEL"); list.add("LILITH"); list.add("LUCIFER"); list.add("ABRAHAM"); list.add("YITZHAK"); list.add("DAVID"); list.add("SOLOMON"); for(String str : list){ StringBuffer rev = new StringBuffer(str); System.out.println(rev.reverse()); } } }

mygw_rumba
質問者

お礼

有難うございます。 習い始めてまだちょっとしか経っていないので、よくわからないのですが、for(String str : list)とするとどうなるのですか? あと、確かにStringBufferにreverse()はありますが、ArrayListを使って、という指示にはあっていませんよね…。 ArrayListでどうしてもわからなかったら使わさせて頂きます、有難うございました。

回答No.1

Javaは最近始めたばかりで良く分かりませんが一応出来ました。 良くないプログラムっぽいですが、これはどうでしょう? ArrayList<String> al = new ArrayList<String>(); al.add("abcde"); al.add("fghij"); for(int i=0; i<al.size(); i++) { int length = (al.get(i)).length(); char str[] = (al.get(i)).toCharArray(); for (int j = 0; j < length/2; j++) { char c = str[j]; str[j] = str[length-1-j]; str[length-1-j] = c; } System.out.println(str); }

mygw_rumba
質問者

お礼

うむむ…toCharArrayですか…。 出来るだけ、ArrayListだけでやりたいのですが。 有難うございました。