是否有一个Java函数可以将两个ArrayLists作为参数并将第一个数组中的每个元素与第二个数组中的等效元素相乘?
如果有的话。与for loop
相比,该功能如何更有效?
ArrayList 1
1, 2, 3, 4
ArrayList 2
4, 3, 2, 1
结果:
4, 6, 6, 4
答案 0 :(得分:3)
我知道没有内置函数,但实现起来非常简单:
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];
}
如果你真的需要更好的性能,你可能会使操作多线程(非常容易),但除此之外我没有看到神奇的,巨大的性能提升。这真的很便宜。
答案 1 :(得分:1)
JAMA是您可以用于矩阵操作的第三方库,如果您决定不推广自己的。
答案 2 :(得分:1)
您还可以使用EJML
库进行矩阵操作。
答案 3 :(得分:0)
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()));
}
也可以有效地用于任何列表。