2012-08-01 80 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库进行矩阵操作。