我想创建一个长度为350的ArrayList<Float>
。我这样做了:
x = new ArrayList<Float>(350);
不,我希望这个数组在每个点都有'零'浮点值。我可以这样做:
for (int i = 0; i< 350 ; i++){
x.add((float) 0.0);
}
所以我的问题是,如果没有迭代,还有另一种方法可以做同样的事情。我想要最小的迭代来提高效率。
答案 0 :(得分:7)
如果您想提高效率,我不会在此使用ArrayList
或Float
。我不建议使用float
,因为它的精度太差了,除非你真的知道你在做什么。
我建议你使用double数组。
double[] x = new double[350]; // all 0.0
答案 1 :(得分:2)
java的Collections
类有一个很好的实用工具:nCopies
。请注意,这会创建一个不可变列表,但它完全符合您的要求:)
答案 2 :(得分:0)
来自java documentation:
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.
答案 3 :(得分:0)
彼得说使用阵列。如果您想在数组列表中使用它,可以使用下面的代码。这将创建一个100个整数的arraylist,每个整数的值为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类型并指定所需的任何初始值。