パラメータとして2つの配列を取り、最初の配列のすべての要素を2番目の配列の同等の要素と乗算できるJava関数はありますか?
ある場合。その関数は と比較してどのように効率的for loop
ですか?
Array 1
1, 2, 3, 4
Array 2
4, 3, 2, 1
結果:
4, 6, 6, 4
パラメータとして2つの配列を取り、最初の配列のすべての要素を2番目の配列の同等の要素と乗算できるJava関数はありますか?
ある場合。その関数は と比較してどのように効率的for loop
ですか?
Array 1
1, 2, 3, 4
Array 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];
}
本当に優れたパフォーマンスが必要な場合は、操作をマルチスレッド(非常に簡単)にすることができますが、それを除けば、魔法のような大幅なパフォーマンスの向上は見られません。本当に安い操作です。
EJML
Library を Matrix 操作に使用することもできます。
JAMAは、自分で作成しない場合に行列演算に使用できるサード パーティのライブラリです。
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()));
}
また、任意のリストに対しても効率的に機能します。