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 回答