哪种是最有效的遍历集合的方式?
List<Integer> a = new ArrayList<Integer>();
for (Integer integer : a) {
integer.toString();
}
Run Code Online (Sandbox Code Playgroud)
要么
List<Integer> a = new ArrayList<Integer>();
for (Iterator iterator = a.iterator(); iterator.hasNext();) {
Integer integer = (Integer) iterator.next();
integer.toString();
}
Run Code Online (Sandbox Code Playgroud)
请注意,这不是这个,这个,这个或这个的完全重复,尽管最后一个问题的答案之一很接近.这不是欺骗的原因是,大多数都是比较你get(i)在循环中调用的循环,而不是使用迭代器.
正如Meta上所建议的,我将发布我对这个问题的回答.
什么时候应该使用for循环而不是while循环?
我认为以下循环是相同的,除了它们的语法.如果是这样,为什么选择一个而不是另一个呢?
int i;
for (i = 0; i < arr.length; i++) {
// do work
}
int i = 0;
while (i < arr.length) {
// do work
i++;
}
Run Code Online (Sandbox Code Playgroud) 如果您正在编写一个简单的小循环,那么您应该为计数器命名什么?
提供示例循环!
我试图让java通过一个数字列表.它选择第一个,将其作为输出,等待/休眠,如2000毫秒,然后将下一个作为输出,等待2000毫秒等.
它们不应该列在彼此之后,所以当我的列表是:10 20 30 40 50
它不应该作为输出:10 20 30 40 50.但只有50.
如果它能够重演它会更好.
到目前为止,我试过:
List<Integer> myCoords = new ArrayList<Integer>();
myCoords.add(10);
myCoords.add(20);
myCoords.add(30);
myCoords.add(40);
myCoords.add(50);
Iterator<Integer> myListIterator = someList.iterator();
while (myListIterator.hasNext()) {
Integer coord = myListIterator.next();
}
Run Code Online (Sandbox Code Playgroud)
但这没有计时器,我不确定这只会显示'20'或'10 20 30 40 50'作为输出.我真的不知道如何在这个中放入一个sleep/wait命令和一个repeat命令:s(如果它已经存在,可能忽略了repeat命令)
编辑 Tyvm all,我现在可以继续使用其余的编码了:)
我想知道在ArrayList或各种List上实现"for-each"循环的最佳方法是什么.
以下哪项实施最好,为什么?或者有最好的方法吗?
谢谢您的帮助.
List values = new ArrayList();
values.add("one");
values.add("two");
values.add("three");
...
//#0
for(String value : values) {
...
}
//#1
for(int i = 0; i < values.size(); i++) {
String value = values.get(i);
...
}
//#2
for(Iterator it = values.iterator(); it.hasNext(); ) {
String value = it.next();
...
}
//#3
Iterator it = values.iterator();
while (it.hasNext()) {
String value = (String) it.next();
...
}
我目前正在德国学习计算机科学,但之前曾参与过几个 C/C++ 开源项目。今天我们在学校开始学习 C,我的老师说在循环内修改 for 循环变量是不行的,我绝对同意。然而,我经常使用一个for循环,没有最后一个递增部分,然后只在循环内部修改它,他也不喜欢这一点。
所以基本上可以归结为
for(int i=0; i<100;) {
[conditionally modify i]
}
Run Code Online (Sandbox Code Playgroud)
与
int i=0;
while(i<100) {
[conditionally modify i]
}
Run Code Online (Sandbox Code Playgroud)
我知道它们在编译后本质上是相同的,但我不喜欢使用 while 循环,因为:
是否有任何风格指南/常见做法可供选择?
如果您回答“我喜欢同时/更多”,至少请提供一个这样做的理由。
我确实已经搜索过类似的问题,但是,我找不到此案例的任何真正答案。
java ×3
loops ×2
c ×1
coding-style ×1
collections ×1
control-flow ×1
for-loop ×1
foreach ×1
styles ×1
while-loop ×1