是否有一个Java函数可以将两个ArrayLists作为参数,并将第一个数组中的每个元素与第二个数组中的等价物相乘?ArrayList乘法
如果有的话。与for loop
相比,该功能如何更有效率?
ArrayList 1
1, 2, 3, 4
ArrayList 2
4, 3, 2, 1
结果:
4, 6, 6, 4
是否有一个Java函数可以将两个ArrayLists作为参数,并将第一个数组中的每个元素与第二个数组中的等价物相乘?ArrayList乘法
如果有的话。与for loop
相比,该功能如何更有效率?
ArrayList 1
1, 2, 3, 4
ArrayList 2
4, 3, 2, 1
结果:
4, 6, 6, 4
没有内置的功能,我知道的,但非常简单的实现:
int[] arr = {1, 2, 3, 4};
int[] arr2 = {4, 3, 2, 1};
int[] result = new int[4];
for(int i=0 ; i<arr.length ; i++) {
result[i] = arr[i]*arr2[i];
}
如果您真的需要更好的性能,您可能会使操作成为多线程(相当容易),但除此之外,我没有看到魔术般的巨大性能提升。这真的是一个相当便宜的操作。
Iterator<Integer> it=ar1.iterator();
Iterator<Integer> it2=ar2.iterator();
while(it.hasNext()&&it2.hasNext())
{
result.add(new Integer(it.next().intValue()*it2.next().intValue()));
}
也可以有效地处理任何列表。
JAMA是您可以用于矩阵操作的第三方库,如果您决定不推出自己的。
您还可以使用EJML
库进行矩阵操作。
我不认为有任何现成的库来执行这种类型的操作。 – kosa 2012-08-01 18:28:29
使用'for'循环。他们没有受到重视。 – 2012-08-01 18:29:39
我不明白这个问题。这将很容易实现自己。 – 2012-08-01 18:29:51