哪种是最有效的遍历集合的方式?
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上所建议的,我将发布我对这个问题的回答.
使用Eclipse我想查看核心Java类的源代码(例如java.util.concurrent.ConcurrentHashMap),但是当我使用"Open Declaration"导航到源代码时,它会显示"Source not found"并给我选择附加源代码.
我的问题是; 我如何附加源?我从哪里获得java.util.concurrent图书馆的源.jar ?
在Java 8之前,可以通过使用匿名内部类来实现lambda功能.例如:
interface Lambda {
void doStuff();
}
// ...
public void doWithCallback(Lambda callback) {
// ...
callback.doStuff();
}
// ...
doWithCallback(new Lambda {
public void doStuff() {
// ...
}
});
Run Code Online (Sandbox Code Playgroud)
在性能方面,仍然使用这种方法和使用新的Java 8 lambda之间有区别吗?
当我尝试在NetBeans中导航到一些JDK源代码时,它只显示它的编译代码并且缺少源代码并且我可以附加它.使用"Attach .."按钮附加源后没有任何反应?我应该在哪里附上源代码?
这不是我的问题的重复.我检查它和我是如何利用适当的谓词和 THAT约为removeIf和删除之间的差异.
我是Java初学者.
昨天,我试着按照这个教程https://dzone.com/articles/why-we-need-lambda-expressions
在我学会了如何使用Lambda表达式和谓词后,我自己制作了代码来练习.
比如,总和所有数字if(n%3 == 0 || n%5 == 0).这是我的代码.
public class Euler1Lambda {
long max;
public Euler1Lambda(long max) {
this.max = max;
}
public static boolean div3remainder0(int number) {
return number % 3 == 0;
}
public static boolean div5remainder0(int number) {
return number % 5 == 0;
}
public long sumAll() {
long sum = 0;
for(int i=1; i<max; i++) {
if (div3remainder0(i) ||div5remainder0(i)) {
sum += i;
}
}
return …Run Code Online (Sandbox Code Playgroud) java ×6
java-8 ×2
benchmarking ×1
closures ×1
collections ×1
eclipse ×1
for-loop ×1
foreach ×1
jvm ×1
jvm-hotspot ×1
lambda ×1
netbeans ×1
netbeans-7 ×1
performance ×1
predicate ×1