Java 从int数组创建BigInteger数组
我有一个int数组。有没有一种方法可以在不迭代元素的情况下将这个int数组直接转换为biginger数组?在Java-8下,没有迭代就无法实现这一点(为什么这很重要,性能会对运行时造成如此大的阻碍?这是应用程序的瓶颈吗?你必须知道迭代“成本”无论您是否直接使用它,都将从您的应用程序中付出代价) 无论如何,为了完整性和使此答案更有用,您可以这样做:Java 从int数组创建BigInteger数组,java,arrays,int,biginteger,java-8,Java,Arrays,Int,Biginteger,Java 8,我有一个int数组。有没有一种方法可以在不迭代元素的情况下将这个int数组直接转换为biginger数组?在Java-8下,没有迭代就无法实现这一点(为什么这很重要,性能会对运行时造成如此大的阻碍?这是应用程序的瓶颈吗?你必须知道迭代“成本”无论您是否直接使用它,都将从您的应用程序中付出代价) 无论如何,为了完整性和使此答案更有用,您可以这样做: for (int i = 0; i < arr.length ; i++) bigIntegerArray[i] = BigIntege
for (int i = 0; i < arr.length ; i++)
bigIntegerArray[i] = BigInteger.valueOf(arr[i]);
for(int i=0;i
如果您决定将int
数组转换为单个biginger
,则有一个构造函数:
将包含biginger
的两个二进制补码表示形式的byte
数组转换为biginger
。假设输入数组按大端字节顺序排列:最高有效字节位于第0个元素中
(正如您可能知道的,
int
可以表示为4个字节
s)如果不在Java-8下进行迭代,就无法实现这一点(为什么这很重要,性能会如此严重地阻碍您的运行?这是应用程序的瓶颈吗?您必须知道迭代的“成本”无论您是否直接使用它,都将从您的应用程序中付出代价)
无论如何,为了完整性和使此答案更有用,您可以这样做:
for (int i = 0; i < arr.length ; i++)
bigIntegerArray[i] = BigInteger.valueOf(arr[i]);
for(int i=0;i
如果您决定将int
数组转换为单个biginger
,则有一个构造函数:
将包含biginger
的两个二进制补码表示形式的byte
数组转换为biginger
。假设输入数组按大端字节顺序排列:最高有效字节位于第0个元素中
(您可能知道,
int
可以表示为4个字节
s)如果您使用
如果您正在使用
等等,你的意思是将它转换为一个大整数数组,其中每个
int
都转换为1biginger
?你只是在寻找一个单行程序,还是觉得你必须为迭代节省成本?你需要迭代。AFAIKI不希望以这样的方式将每个int值转换为BigInteger值。是的,我正试图这样做以节省迭代的成本。迭代的成本将发生,无论发生什么。如果不是您的代码,那么其他一些(库)代码将必须迭代整数数组并创建BigInteger实例。等等,您的意思是将其转换为一个大整数数组,其中每个int
都转换为1biginger
?您只是在寻找一个单行程序,还是觉得必须为迭代节省成本?您需要迭代。AFAIKI不希望以这样的方式将每个int值转换为BigInteger值。是的,我正试图这样做以节省迭代的成本。迭代的成本将发生,无论发生什么。如果不是您的代码,那么其他一些(库)代码将不得不迭代整数数组并创建BigInteger实例。@YassinHajaj您以前使用过的、我认为更干净的toArray(BigInteger[]::new)
。尽管如此,它仍然有效,+1。@Jean-FrançoisSavard是的,改变它:)@YassinHajaj这行toArray(BigInteger[]::new)
,你以前做过,在我看来更干净。尽管如此,它仍然有效,+1。@Jean-FrançoisSavard是的,改变它:)