将BigInteger循环添加到List中

时间:2018-03-11 15:36:54

标签: java

我坚持一个可能很简单的事情,但我无法弄明白。 所以这是代码:

List<BigInteger> list = new ArrayList<BigInteger>();
for (int i = 1; i <= 12; i++) {
    list.add(new BigInteger("i"));
}

我得到以下例外:

  

线程中的异常&#34; main&#34; java.lang.NumberFormatException:输入字符串:"i"

我不明白,我是1-12之间的整数,它应该可以转换为BigInteger。

2 个答案:

答案 0 :(得分:3)

字符串"i"不是BigInteger的有效表示。

由于没有构造函数在BigInteger类中使用单个int参数,因此可以使用String.valueOf返回整数i的字符串表示形式:

list.add(new BigInteger(String.valueOf(i)));

答案 1 :(得分:1)

List<BigInteger> list = new ArrayList<BigInteger>();
for (int i = 1; i <= 12; i++) {
    list.add(BigInteger.valueOf(i)); // Fix
}

这种方式比所选答案更有效,因为所选方法首先将int转换为String,然后将String解析回int,这是Integer真的很慢。

相关问题