aaa*_*aaa -5 java arrays arraylist
我想为一个添加多个BigInteger值ArrayList.我所发现的只是重复添加单个值的示例,每个值都在自己的代码行中表示.我正在寻找类似的东西
ArrayList<BigInteger> array = {bigInt1, bigInt2, bigInt3};
Run Code Online (Sandbox Code Playgroud)
而是它的:
ArrayList<BigInteger> array = new ArrayList<BigInteger>();
array.add(bigInt1);
array.add(bigInt2);
array.add(bigInt3);
Run Code Online (Sandbox Code Playgroud)
可以在不添加一个元素/行或使用for循环的情况下完成吗?
cle*_*tus 27
我不太确定你在追求什么.你有四种选择:
实例化具体List类型,然后调用add()每个项目:
List<BigInteger> list = new ArrayList<BigInteger>();
list.add(new BigInteger("12345"));
list.add(new BigInteger("23456"));
Run Code Online (Sandbox Code Playgroud)
List类型(双支撑初始化)有些人可能建议像这样的双括号初始化:
List<BigInteger> list = new ArrayList<BigInteger>() {{
add(new BigInteger("12345"));
add(new BigInteger("23456"));
}};
Run Code Online (Sandbox Code Playgroud)
我建议不要这样做.你在这里做的实际上是子类化ArrayList,(imho)不是一个好主意.这种事情可以破坏Comparators,equals()方法等等.
Arrays.asList()另一种方法:
List<BigInteger> list = new ArrayList<BigInteger>(Arrays.asList(
new BigInteger("12345"),
new BigInteger("23456")
));
Run Code Online (Sandbox Code Playgroud)
或者,如果您不需要ArrayList,只需:
List<BigInteger> list = Arrays.asList(
new BigInteger("12345"),
new BigInteger("23456")
);
Run Code Online (Sandbox Code Playgroud)
我更喜欢上述两种方法之一.
Collection文字(Java的7+)假设在Java 7中继续使用Collection文字,您将能够这样做:
List<BigInteger> list = [new BigInteger("12345"), new BigInteger("23456")];
Run Code Online (Sandbox Code Playgroud)
目前看来,我认为此功能尚未确认.
而已.这些是你的选择.选一个.
小智 6
BigIntegerArrays.asList(1, 2, 3, 4);
Run Code Online (Sandbox Code Playgroud)
BigIntegerArrays是一个自定义类,可以满足您的需要.如果您经常这样做,这会有所帮助.这里没有火箭科学 - ArrayList BigIntegerArrays.asList(Integer ... args)将使用FOR循环.