如何使用 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));
}
我有一个字符串数组,我想使用 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));
}