我是一名Javascript开发人员,我开始查看Java。
我遇到的一个问题是如何在集合上执行forEach。我似乎无法在Java集合中找到任何这样的方法......
答案 0 :(得分:5)
从Java 5开始,您可以使用增强型for
循环。假设您在变量List<Thingy>
中有thingies
。增强的for
循环如下所示:
for (Thingy t : thingies) {
// ...
}
从Java 8开始,迭代的实际forEach
method接受lambda function:
thingies.forEach((Thingy t) -> { /* ...your code here... */ });
如果您要使用现有方法,则可以使用method reference而不是内联lambda:
thingies.forEach(this::someMethod); // Instance method on `this`
thingies.forEach(SomeClass::someMethod); // Static method on `SomeClass`
thingies.forEach(foo::someMethod); // Instance method on `foo` instance
答案 1 :(得分:1)
您要完成的任务只能以类似于JavaScript,Java 8或更新版本的形式完成。 Java 8在Iterable上添加了forEach(defender)方法(Collection继承)