我已经在R中编程了大约一年了,我刚刚开始自学Java。我喜欢R的一件事是apply()函数族(例如sapply,mapply,apply等)。
我想知道Java是否具有相同的功能,或者是否有人用Java编写过这些功能 - 我可能能够自己给出一些基本功能,但我无法做到这一点。他们似乎有的优化(即sapply(FUN,X)似乎比(i in 1:length(X))FUN(X [i])在很多情况下要快得多。
如果没有,我是否正在考虑这个问题,例如:也许你不需要为向量的每个元素应用一些函数,因为Java是面向对象的,所以在你想要使用它们的典型问题中,Java不是你最好的选择,或者有其他接近它的方式?
答案 0 :(得分:1)
Java 8中的functional additions应解决您的问题。
答案 1 :(得分:0)
java 8之前的java不是一种函数式语言。
函数式语言是一种可以将函数作为参数传递给另一个函数的语言。
引入Lamba expressions解决了这个问题。
如果你不能使用java 8,唯一的可能性就是创建一个只有一种方法的接口(例如申请),并在需要时手动调用apply方法(参见例如how swing works to handle events like click)。 / p>