我理解Java8 lambda表达式的语法,但为什么下面的代码在没有x的特定类型声明的情况下工作?为什么要打印"巴兹"?
public class LambdaExpressions {
interface Foo {
void bar(Object o);
}
static void doo(Foo f) {
f.bar("baz");
}
public static void main(String[] args) {
doo( x -> {System.out.println(x);});
}
}
Run Code Online (Sandbox Code Playgroud) 您如何精确链接Java 8实例的方法引用?例:
Collections.sort(civs,Comparator.comparing(Civilization::getStrategy.getStrategLevel));
Run Code Online (Sandbox Code Playgroud)
getStrategy一个的Civilization实例返回一个Strategy具有实例方法的对象实例getStrategyLevel。
为什么该Comparator.comparing方法不返回带有由lambda表达式实现的功能接口的比较器?
for (i = 0; i < 2*n; i += 2)
{
for (j=n; j > i; j--)
//some code that yields O(1)
}
Run Code Online (Sandbox Code Playgroud)
我认为上面会产生n*log(n)但我已经看到另一个消息来源说它真的是n^2复杂的大哦.请向我解释它是什么以及我将来如何处理这样的问题.