1

私はこのJavaの本を読んでいて、解決できないように見える演習に出くわしました。アイデアは、多くのコインを含む ArrayList Purse を作成し、それを逆に出力することです。私が追加しました...

static String d = "Dime";
static String q = "Quarter";
static String n = "Nickel";

purse.addCoin(d);
purse.addCoin(q);
purse.addCoin(d);
purse.addCoin(n);

...私のメインクラスで。私の印刷方法は正常に機能します。配列リスト内のすべての要素を逆にして印刷する方法を理解する必要があります。私の逆ループは、配列リストを最後からループするという点ではうまく機能しますが、不要な要素を削除する方法がわかりません。私はこれを正しい方法で行うことを目指しているので、明らかにこれとは異なる方法でアプローチすることにオープンです。これが私の逆の方法です:

 public static void printInReverse() {
    for (int i = p.size() - 1; i >= 0; i--) {

        p.add(p.get(i));
        //I'm lost here as far as approaching the method this way

    }

    System.out.println("Purse" + p);
}

これを調査しようとしましたが、信頼できる解決策が見つからないようです。

4

3 に答える 3

2
  1. リストから何かを削除する必要がある理由はありますか? 逆に印刷するだけで、実際にリストを変更しないでください。

    for (int i = p.size() - 1; i >= 0; i--) {

    System.out.println(p.get(i));
    

    }

  2. リストを逆にしたい場合は、要素を逆の順序で挿入して、ゼロから新しいリストを作成することを検討してください。次に、古いリストを新しいリストに交換します。または使用しますCollections.reverse

于 2013-06-12T23:25:46.490 に答える
1

pループしている間に逆転するのは悪い考えだと思います。pがリストの場合、それCollections.reverse(p)を逆にします。万全を期すために、コピーを作成しpて反転させてください。

これを参照してください: http://www.java-examples.com/reverse-order-all-elements-java-arraylist-example

于 2013-06-12T23:27:10.937 に答える
0

単純にすべての要素を逆方向に出力することが目標である場合は、配列を逆方向にループし、アイテムを繰り返し処理しながら出力することができます。

于 2013-06-12T23:25:21.433 に答える