考虑:
List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
System.out.println(item);
}
如果不使用for each语法,等价的for循环会是什么样子?
考虑:
List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
System.out.println(item);
}
如果不使用for each语法,等价的for循环会是什么样子?
当前回答
使用forEach:
int[] numbers = {1,2,3,4,5};
Arrays.stream(numbers).forEach(System.out::println);
答复:
1
2
3
4
5
The process finished with exit code 0
PS:您需要一个Array(int[]数字),然后导入java.util.Arrays;
其他回答
它消除了所有基本的循环混乱,为代码增添了美感。它为您的代码提供了一个干净的外观,如下所示。
循环正常:
void cancelAll(Collection<TimerTask> list) {
for (Iterator<TimerTask> i = list.iterator(); i.hasNext();)
i.next().cancel();
}
用于每个:
void cancelAll(Collection<TimerTask> list) {
for (TimerTask t : list)
t.cancel();
}
for each是实现Iterator的集合上的构造。记住,您的集合应该实现Iterator;否则,不能将其用于每个。
以下行读作“for each TimerTask t in list”
for (TimerTask t : list)
每种情况下出现错误的可能性较小。您不必担心初始化迭代器或初始化循环计数器并终止它(在存在错误的地方)。
代码应为:
import java.util.ArrayList;
import java.util.List;
public class ForLoopDemo {
public static void main(String[] args) {
List<String> someList = new ArrayList<String>();
someList.add("monkey");
someList.add("donkey");
someList.add("skeleton key");
// Iteration using For Each loop
System.out.println("Iteration using a For Each loop:");
for (String item : someList) {
System.out.println(item);
}
// Iteration using a normal For loop
System.out.println("\nIteration using normal For loop: ");
for (int index = 0; index < someList.size(); index++) {
System.out.println(someList.get(index));
}
}
}
还要注意,在原始问题中使用“foreach”方法确实有一些限制,例如在迭代过程中无法从列表中删除项目。
新的for循环更容易阅读,并且不需要单独的迭代器,但只有在只读迭代过程中才能真正使用。
public static Boolean Add_Tag(int totalsize)
{
List<String> fullst = new ArrayList<String>();
for(int k=0; k<totalsize; k++)
{
fullst.addAll();
}
}
我认为这会奏效:
for (Iterator<String> i = someList.iterator(); i.hasNext(); ) {
String x = i.next();
System.out.println(x);
}