相关疑难解决方法(0)

每个'循环的Java'如何工作?

考虑:

List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
Run Code Online (Sandbox Code Playgroud)
for (String item : someList) {
    System.out.println(item);
}
Run Code Online (Sandbox Code Playgroud)

如果for不使用for each语法,等效循环会是什么样的?

java foreach syntactic-sugar

1446
推荐指数
25
解决办法
252万
查看次数

Java for循环语法:"for(T obj:objects)"

我遇到了一些我以前没见过的Java语法.我想知道是否有人能告诉我这里发生了什么.

for (ObjectType objectName : collectionName.getObjects())
Run Code Online (Sandbox Code Playgroud)

java syntax foreach for-loop

49
推荐指数
2
解决办法
15万
查看次数

带有条件的Java Foreach

Java foreach有可能有条件吗?

例如,

for(Foo foo : foos && try == true)
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)

有没有相当于这个,这样我可以把一个AND条件放在里面for

java foreach

24
推荐指数
3
解决办法
3万
查看次数

在java增强的for循环中,可以安全地假设要循环的表达式只会被评估一次吗?

在Java中,for-each循环.
如果我有一个生成数组的方法,则调用genArray().

在下面的代码中,每次都会通过调用重新生成数组genArray()吗?或者Java会调用一次方法并从数组中存储一个副本吗?

for (String s : genArray())
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java arrays iteration foreach

10
推荐指数
3
解决办法
5089
查看次数

为什么在使用for-each时循环变量有效地最终化?

  • 情况1:在使用for-each循环时可以工作吗?
    private void m10(String[] arr) {
        for (String s : arr) {
            Supplier<String> supplier = () -> {
                System.out.println(s);
                return null;
            };
            supplier.get();
        }
    }
Run Code Online (Sandbox Code Playgroud)

要么

    private void m10(Object[] arr) {
        for (Object s : arr) {
            Supplier<String> supplier = () -> {
                System.out.println(s);
                return null;
            };
            supplier.get();
        }
    }
Run Code Online (Sandbox Code Playgroud)
  • 情况2:它将捕获编译时错误
    private void m11(String[] arr) {
        for (int i = 0; i < arr.length; i++) {
            Supplier<String> supplier = () -> {
                System.out.println(arr[i]);
                return null;
            };
            supplier.get();
        }
    }
Run Code Online (Sandbox Code Playgroud)

在情况2中,我知道该变量 …

java lambda final

5
推荐指数
1
解决办法
96
查看次数

对于空列表中的每个循环

如果我们在空集合中执行foreach循环,则不会采取任何操作.但是当集合为空时,应该如何处理案例中的结构呢?

Collection<String> c=null;
....
for(String item:c){
   println(item);
}
Run Code Online (Sandbox Code Playgroud)

我可以运行代码并查看null引用异常.但究竟应该是什么行为呢?我找不到任何关于它的手册页.

我知道在头部抛出了异常,因为集合是null.但我想知道如何抛出异常.它可以通过if,或通过Objects.requireNonNull(),或以其他方式完成,或者如David的答案中所示.

java foreach

4
推荐指数
1
解决办法
2371
查看次数

Java 中的枚举类型:每个循环中的 values()

我有点好奇 values() 方法如何在 Java 中的 Enum 类型中工作。正如 Java 规范文档中所见,我们可以在 for each 循环中迭代某个枚举类型的所有值。例如

for (Planet p : Planet.values()) {
System.out.printf("Your weight on %s is %f%n",
                  p, p.surfaceWeight(mass));
}
Run Code Online (Sandbox Code Playgroud)

我认为对于每个循环迭代所有值。在这个调用中,我们在每个循环调用中重复调用一个方法,因此它将如何迭代所有枚举类型或 values() 方法使用某种迭代器。任何人都可以帮助我编写此方法的实现文档吗?

java enums

0
推荐指数
1
解决办法
2357
查看次数

标签 统计

java ×7

foreach ×5

arrays ×1

enums ×1

final ×1

for-loop ×1

iteration ×1

lambda ×1

syntactic-sugar ×1

syntax ×1