如何使用 Java 8 个流将字符串数组转换为大整数数组

How to convert string array to Big-integer array using Java 8 streams

我有一个字符串数组,我想使用 Java 8 个流将它转换成 BigInteger 数组。

String[] output = bigSorting(new String[]{"31415926535897932384626433832795", "1", "4900146572543628830293235422623540449026979", "10", "57500297590012603652986133599394871645776460", "5", 
                    "497010206818067722087306230802257700034825862515267073569769100385728461314", "57500297590012603652986133599394871645776460497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314"});
        Object[] unsortedBigIntegerArr = convertFromStringArrayToBigIntegerArray(output);

这是我尝试过的方法,但我无法获取 BigInteger 数组,但我可以获取 Object 数组。

private static Object[] convertFromStringArrayToBigIntegerArray(String[] unsorted) {
        return Arrays.stream(unsorted).map(BigSorting2::convertFromStringToBigInteger).toArray();
    }

    private static BigInteger convertFromStringToBigInteger(String unsorted) {
        return new BigInteger(unsorted);
    }

有什么方法可以完全使用 Java 8 个流来完成。

简单如:

return Arrays.stream(unsorted)
             .map(BigSorting2::convertFromStringToBigInteger)
             .toArray(BigInteger[]::new);

一些非常简单的东西,比如:

public void test(String[] args) {
    String[] output = new String[]{"31415926535897932384626433832795", "1", "4900146572543628830293235422623540449026979", "10", "57500297590012603652986133599394871645776460", "5",
            "497010206818067722087306230802257700034825862515267073569769100385728461314", "57500297590012603652986133599394871645776460497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314497010206818067722087306230802257700034825862515267073569769100385728461314"};
    Object[] bigIntegers = Arrays.stream(output)
            .map(BigInteger::new)
            .toArray();
    System.out.println(Arrays.toString(bigIntegers));
}