是否有一個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