是否有java的underscore.js lib?

Nic*_*.Xu 6 javascript java

我经常使用javascript,并且发现underscorejs对于操作数据集非常方便,例如数组或对象.

我是Java的新手,想知道是否有类似的Java库?

Mig*_*ell 8

如果您使用的是Java 8,则可以使用Java的Stream类,它有点像Underscore,因为它是为函数式编程而设计的.以下是一些可用的方法,包括map,reduce,filter,min,max等.

例如,如果您在下划线中有以下代码:

var words = ["Gallinule", "Escambio", "Aciform", "Entortilation", "Extensibility"];
var sum = _(words)
        .filter(function(w){return w[0] == "E"})
        .map(function(w){return w.length})
        .reduce(function(acc, curr){return acc + curr});
alert("Sum of letters in words starting with E... " + sum);
Run Code Online (Sandbox Code Playgroud)

您可以像这样在Java 8中编写它:

String[] words = {"Gallinule", "Escambio", "Aciform", "Entortilation", "Extensibility"};
int sum = Arrays.stream(words)
        .filter(w -> w.startsWith("E"))
        .mapToInt(w -> w.length())
        .sum();
System.out.println("Sum of letters in words starting with E... " + sum);
Run Code Online (Sandbox Code Playgroud)


Val*_*kov 8

有一个新的库:underscore-java.我是该项目的维护者.实例

import com.github.underscore.lodash.U;

public class Main {
    public static void main(String args[]) {
        String[] words = {"Gallinule", "Escambio", "Aciform", "Entortilation", "Extensibility"};

        Number sum = U.chain(words)
            .filter(w -> w.startsWith("E"))
            .map(w -> w.length())
            .sum().item();
        System.out.println("Sum of letters in words starting with E... " + sum);
    }
}
Run Code Online (Sandbox Code Playgroud)