【问题标题】:Coin Purse Program零钱包计划
【发布时间】:2013-06-09 05:46:52
【问题描述】:

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

我已尝试对此进行研究,但似乎找不到可靠的解决方案。

【问题讨论】:

  • 我不明白你在做什么。如果您只是想反向打印元素,则无需删除它们。
  • 其实没必要删掉,从大家的回复中我发现。我以一种比本应复杂得多的方式接近它。

标签: java arrays for-loop arraylist


【解决方案1】:
  1. 你有什么理由需要从列表中删除东西吗?只是反向打印,不要实际修改列表。

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

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

    }

  2. 如果您想反转列表 - 考虑从头开始制作一个 new 列表,其中的元素以相反的顺序插入。然后将旧列表换成新列表。或使用Collections.reverse

【讨论】:

  • 大家提出的优秀观点。不过,我不知道 Collections 类。这是相当方便的。创建一个新列表并使用新列表似乎是获得实际反转列表的最有效方法。使用 Collections.reverse 与创建新列表相比有什么好处吗?谢谢大家的回复。非常感谢。
【解决方案2】:

我认为在循环遍历 p 时反转它是一个坏主意。如果p 是一个列表,那么Collections.reverse(p) 将反转它。为了安全起见,请复制p 并反转它!

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

【讨论】:

    【解决方案3】:

    如果您的目标只是反向打印出所有元素,您可以简单地反向循环遍历数组,并在遍历它们时打印出项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多