使用“ for each”循环在Java中反转ArrayList

时间:2018-09-25 00:28:48

标签: java arraylist methods reverse

我在创建作业问题的方法时遇到了麻烦,该方法可以将ArrayList反转到适当的位置,以使例如1 2 3 4 5变成5 4 3 21。我知道{{1} },但我不能使用它,也不能使用常规的for循环,它必须是“ for each”循环,因此必须是“ Collections.reverse”。我知道,使用常规的for循环,我将可以使用两个迭代变量for (String book: books) { ... }i,以便可以交换第一个索引和最后一个索引的值来对其进行反转,但是在每个循环中你不能那样做。任何帮助,将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

此示例使用for each,在arrayList内创建包含多个字符串的变量,然后使用常规的for each循环遍历整个arrayList,但在位置i上打印每次都会减少我

int i = books.size() - 1;
for(String b: books){
 newList.add(books[i]);
 System.out.println(books[i]);
i--;
}

这是在一个arrayList中进行切换的示例。

int i = books.size() - 1;
String helpString;
for(int n = 0; n <= books/2 ; n++){
helpString = books[n];
books[n] = books[i];
books[i] = helpString;

i--;
}

答案 1 :(得分:1)

您可以使用forEach语法来做到这一点。

List<Integer> intValues = new ArrayList<Integer>();
intValues.add(1);
intValues.add(2);
intValues.add(3);
intValues.add(4);
intValues.add(5);


 IntStream.range(0, intValues.size()).forEach(v -> System.out.print(intValues.get((intValues.size()-1)-v)));