[英]adding in ArrayList without iterating
我想创建一个长度为350的ArrayList<Float>
。我这样做是:
x = new ArrayList<Float>(350);
不,我希望此数组在每个点都具有“零”浮点值。 我可以做这个:
for (int i = 0; i< 350 ; i++){
x.add((float) 0.0);
}
所以我的问题是,是否有另一种方法可以重复执行相同的操作。 我希望进行最少的迭代以提高效率。
如果您想提高效率,我将不在此处使用ArrayList
或Float
。 我不建议您使用float
即使它的精度非常差,除非您真的知道自己在做什么。
我建议您使用双精度数组。
double[] x = new double[350]; // all 0.0
java的Collections
类对此有一个很好的实用程序: nCopies
。 请注意,这会创建一个不可变的列表,但它确实可以满足您的要求:)
从Java 文档 :
ArrayList(int initialCapacity)
Constructs an empty list with the specified initial capacity.
请注意,列表仍然为空,因此您必须一一添加元素。 仅容量改变。
我建议您为一个数组构造另一个集合,然后使用该构造函数初始化列表:
ArrayList(Collection<? extends E> c)
Constructs a list containing the elements of the specified collection, in the order they are returned by the collection's iterator.
正如彼得所说,使用数组。 如果要在数组列表中使用此代码,则可以使用以下代码。 这将创建一个数组列表,其中包含100个整数,每个整数的值为42
Integer[] a = new Integer[100];
Arrays.fill(a, 42);
List<Integer> l = new ArrayList<Integer>(Arrays.asList(a));
for (Integer integer : l) {
System.out.println(integer);
}
您可以轻松地将其修改为Float类型,并分配所需的任何初始值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.