硬币钱包计划

时间:2013-06-12 23:16:55

标签: java arrays for-loop arraylist

我正在阅读这本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);
}

我试图对此进行研究,但似乎无法找到可靠的解决方案。

3 个答案:

答案 0 :(得分:2)

  1. 您是否有任何理由要从列表中删除内容?只需反向打印,不要实际修改列表。

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

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

    }

  2. 如果要反转列表 - 请考虑从头开始创建一个 new 列表,并按相反的顺序插入元素。然后换掉旧列表。或者使用Collections.reverse

答案 1 :(得分:1)

我认为在循环播放它时反转p是一个坏主意。如果p是列表,则Collections.reverse(p)将撤消该列表。为了保持安全,请复制p并将其反转!

看到这个: http://www.java-examples.com/reverse-order-all-elements-java-arraylist-example

答案 2 :(得分:0)

如果您的目标只是反向打印所有元素,您只需反向循环遍历数组,并在迭代它们时打印出来。