Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 硬币钱包计划_Java_Arrays_For Loop_Arraylist - Fatal编程技术网

Java 硬币钱包计划

Java 硬币钱包计划,java,arrays,for-loop,arraylist,Java,Arrays,For Loop,Arraylist,我正在阅读这本java书籍,遇到了一个我似乎无法解决的练习。这个想法是创建一个ArrayList钱包,里面有多少硬币,然后打印出来。我补充说 static String d = "Dime"; static String q = "Quarter"; static String n = "Nickel"; purse.addCoin(d); purse.addCoin(q); purse.addCoin(d); purse.addCoin(n); …在我的主课上。我的print方法工作得很好

我正在阅读这本java书籍,遇到了一个我似乎无法解决的练习。这个想法是创建一个ArrayList钱包,里面有多少硬币,然后打印出来。我补充说

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

purse.addCoin(d);
purse.addCoin(q);
purse.addCoin(d);
purse.addCoin(n);
…在我的主课上。我的print方法工作得很好,我只需要弄清楚如何反转数组列表中的所有元素,然后打印它。我的反向循环在从最末端循环数组列表方面非常有效,但我不确定如何删除不需要的元素。我显然愿意以不同的方式来处理这个问题,因为我希望以正确的方式来处理这个问题。以下是我的反向方法:

 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);
}

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

如果您的目标只是以相反的方式打印所有元素,那么您可以简单地以相反的方式循环遍历数组,并在迭代时打印出项

  • 您有什么理由需要从列表中删除内容吗?只需反向打印,不需要修改列表

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

    }

  • >P>如果您想反转列表,请考虑从头开始创建一个新的列表,元素以相反的顺序插入。然后把旧的清单换成新的。或者使用
    集合。反转


    我认为在循环过程中反转
    p
    是个坏主意。如果
    p
    是一个列表,那么
    Collections.reverse(p)
    会将其反转。为了安全起见,请复制一份
    p
    并将其反转

    见此:

    我不明白你想做什么。如果你只是想反向打印元素,就没有必要删除它们。事实上,正如我从每个人的回复中发现的那样,没有必要删除它们。我是以一种比本来更复杂的方式来处理这件事的。你们都提出了很好的观点。但是我不知道Collections类。那相当方便。创建一个新的列表并使用新的列表似乎是拥有一个实际颠倒的列表的最有效的方法。使用Collections.reverse与创建新列表相比是否有好处?谢谢大家的回复。非常感谢。
    System.out.println(p.get(i));