2012-08-01 76 views
0

是否有一個Java函數可以將兩個ArrayLists作爲參數,並將第一個數組中的每個元素與第二個數組中的等價物相乘?ArrayList乘法

如果有的話。與for loop相比,該功能如何更有效率?

ArrayList 1

1, 2, 3, 4 

ArrayList 2

4, 3, 2, 1 

結果:

4, 6, 6, 4 
+0

我不認爲有任何現成的庫來執行這種類型的操作。 – kosa 2012-08-01 18:28:29

+2

使用'for'循環。他們沒有受到重視。 – 2012-08-01 18:29:39

+0

我不明白這個問題。這將很容易實現自己。 – 2012-08-01 18:29:51

回答

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]; 
} 

如果您真的需要更好的性能,您可能會使操作成爲多線程(相當容易),但除此之外,我沒有看到魔術般的巨大性能提升。這真的是一個相當便宜的操作。

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())); 
}  

也可以有效地處理任何列表。

1

JAMA是您可以用於矩陣操作的第三方庫,如果您決定不推出自己的。

1

您還可以使用EJML庫進行矩陣操作。