• ベストアンサー

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

  • Java
  • 回答数4
  • ありがとう数5

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

  • ベストアンサー
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だけでやりたいのですが。 有難うございました。

関連するQ&A

  • ArrayListはListのデフォルト実装とは?

    「ArrayListはListのデフォルト実装」と書いてあるのですが、どういう意味でしょうか? http://topickup.web.fc2.com/java/list_arraylist.html ■自分の理解 ・List … インターフェイス ・ArrayList … インターフェイスを実装するクラスの中の一つ。どの実装クラスを利用するかはユーザーが選択? ■疑問点 ・Listインターフェイスのリファレンスに、デフォルト実装について明記されているかと思ったのですが、見つかりません ・どこかに書いているのでしょうか? http://docs.oracle.com/javase/jp/7/api/java/util/List.html ・検索したら、似た言葉で「デフォルトメソッド」があるのですが、「デフォルト実装」と同じ意味でしょうか? ・「デフォルトメソッド」はJava8の新機能? Java7以下では使えない?

    • ベストアンサー
    • Java
  • ArrayListのパッケージがlistでない理由

    ・パッケージについて教えてください ■質問1 ・ArrayListのパッケージは、どうして「java.util.List」ではなくて「java.util.ArrayList」なのでしょうか? ・ArrayListは、Listインターフェイス実装クラスなのでListに紐付いている、と思ったのですが… ・「java/util/List.interface」と「java/util/ArrayList.class」は並列の位置づけになるのでしょうか? ・そういう決まりだから? ・Listインターフェイスのパッケージ名は下記で確認するのでしょうか? ・http://docs.oracle.com/javase/jp/7/api/java/util/List.html ■質問2 ・「import java.util.*;」表記ができるなら、全部これで良いようにも思うのですが、どういう風に使い分けるのでしょうか? ・普通はどちらを使う、とかあるのでしょうか?

    • ベストアンサー
    • Java
  • publicがprotectedになった場合のプログラム修正

    JDK1.4から1.3にバージョンを落とす事になったのですが、java.util.Calendar.getTimeInMillisが publicでなくprotectedでした。 http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/util/Calendar.html#getTimeInMillis() したがって、他のパッケージからのアクセスできなくなってしまったのですが、こういう場合どのように対処すれば良いでしょうか?

    • ベストアンサー
    • Java
  • ArrayListのバージョン変換

    今、JAVAを勉強しているのですが、環境の問題でJAVA1.4しか使えません。 しかし、市販の本を購入し、プログラムを書いて練習していたら、JAVA5.0のプログラムでした。 下記のプログラムを1.4のバージョンに変更するにはどうしたらいいのでしょうか?? ---プログラム--- import java.util.ArrayList; public class ItemCollection { //商品一覧を保持するArrayList protected ArrayList<Item> list; //商品一覧に対するGETTER,SETTER public ArrayList getList(){ return this.list; } public void setList(ArrayList<Item> list){ this.list = list; } //引数のないコンストラクタ public ItemCollection(){ } //商品一覧に商品を追加 public void addItem(Item item){ list.add(item); } //商品一覧に商品を参照 public Item getItem(int index){ return list.get(index); } //商品一覧の数を返す public int getSize(){ return list.size(); } }

    • ベストアンサー
    • Java
  • Javaの公式メソッドの中身を見るには?

    Javaの公式なメソッドやクラスの中身を見るにはどうすればいいでしょうか? jTextAreaクラスに、指定した位置に文字列を挿入する、 「insertメソッド」というメソッドがあるのですが、 このメソッドがどういうアルゴリズムかを勉強したいのですが、 JavaのAPIを見ても、引数や説明があるだけで、中のソースがありません。 http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JTextArea.html#insert%28java.lang.String,%20int%29 何か中身を見る方法ありませんか?

    • ベストアンサー
    • Java
  • ArrayListのイテレータについて

    java初心者です. 以下のようなプログラム(かなり簡略化しています)で ArrayList<Integer> list =new ArrayList<Integer>(); list.add(new Integer(1)); Iterator it = list.iterator(); while(it.hasNext()){ it.next() if(Math.random()<0.5) list.add(new Integer(2));//50%の確率で"2"を追加 }; arraylistの「先頭からイテレータを使って呼び出していくのと同時に,後ろに50%の確率で"2"を追加していきたい」のですが, うまく動作しません.「」の中のような動作を行うには,どうすればいいでしょうか? よろしくお願いします.

  • ArrayListのcloneメソッド

    お世話になります。 ArrayListのcloneメソッドなんですが、API上は「ArrayList のインスタンスのシャローコピーを返します。要素自体はコピーされません。 」と記載がありますが、 「ディープコピー」をしているような感じがして、なぜ「シャローコピー」と言っているのか、教えて欲しいです。 しかも、要素自体もコピーされているような…。 自分の理解では、 シャローコピー:コピー元、コピー先で同じオブジェクトを参照する ディープコピー:コピー元、コピー先で違うオブジェクトを参照する 試したソースは以下です。 --------------- import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList<String> array = new ArrayList<String>(); array.add("a"); array.add("b"); ArrayList<String> array2 = (ArrayList<String>) array.clone(); array2.add("c"); System.out.println("array:" + array); System.out.println("array2:" + array2); } } --------------- cloneメソッドはシャローコピーなので、array2で「c」がaddされたら、arrayも「c」が追加されて、 array:[a, b, c] array2:[a, b, c] となるはずが、 array:[a, b] array2:[a, b, c] となります。 array、array2は別々のオブジェクトを参照しているような気がします。 恐らく大きな勘違いをしているのかもしれませんが、 調べてもいまいち理解できませんでした。 お手数おかけしますが、よろしくお願い致します。

    • ベストアンサー
    • Java
  • javaの中でaddElementは何ですか?

    javaの中でaddElementは何ですか? import java.util.*; public class StringVector{ public static void main(String[] args){ Vector<String> v = new Vector<String>(); v.addElement("hello"); v.addElement("World"); for(String s : v){ System.out.println(s); }}} http://java.sun.com/javase/ja/6/docs/ja/api/ でも探してみましたが。。

    • ベストアンサー
    • Java
  • 「SimpleEntry を型に解決できません。」とエラーが出て悩んでます

    Eclipseでこのプログラムを実行しましたが, http://d.hatena.ne.jp/nowokay/20080707#1215460276 「SimpleEntry を型に解決できません。」 とエラーをはきます。 javaのバージョン違いかと思い,コマンドウィンドウを開いて,  java -version としましたが,version1.6.0_02 でSimpleEntryについて調べましたが, version1.6から採用しているらしく(http://java.sun.com/javase/ja/6/docs/ja/api/java/util/AbstractMap.SimpleEntry.html) 問題はない気がするのですが,何が原因なのかわかりません。 とにかくこのサイトのプログラムを一度実行してみたいです。 解決策を教えてください

  • ArrayListのgetメソッドが実行できない!

    public class ALTest{ public static void main(String[] args){ Collection<String> list = new ArrayList<String>(); list.add(One);list.add(Two);list.add(Three); //ここに記述 } } 上記「ここに記述」の箇所に以下を書いた場合の話です。  String ss = list.get(0); Collection<String>型なのでメソッドget()は実行できません。と解説にあるのですが、 理由がわかりません。Get()がstaticメソッドというわけでもなさそうだし。

    • ベストアンサー
    • Java

専門家に質問してみよう