Java 8によるListからArrayへの変換
771 ワード
開発ではサードパーティのライブラリを呼び出す必要があり、一部のAPIのパラメータ要求はdouble[]配列であり、プログラムはユーザーのページでの入力に基づいてdouble[]を戻り値として計算し、このAPIを呼び出す.
このdouble[]配列の大きさを予め知ることができず、double[]の変数を直接定義することができず、リストを借りてリストにデータを入れてからdouble[]配列に変換するしかないことが多い.これは簡単で、forループ1つで終わりますが、java 8のstream特性を使うとコードをより優雅にすることができます.次に、私のプログラムの例を示します.
List自体にAPIがあり、パラメータ付きのtoArray()ですが、場合によっては、モデルチェンジ後にArrayコンパイルは問題なく、実行時報が間違っていて、具体的に何が間違っているのか忘れてしまい、次回発見してから文章を更新します.
安全のためにstreamを使うのが一番信頼でき、コードもきれいです.
このdouble[]配列の大きさを予め知ることができず、double[]の変数を直接定義することができず、リストを借りてリストにデータを入れてからdouble[]配列に変換するしかないことが多い.これは簡単で、forループ1つで終わりますが、java 8のstream特性を使うとコードをより優雅にすることができます.次に、私のプログラムの例を示します.
List factorValueList = new ArrayList<>();
for (Integer defId : input.getCohortDefIds()) {
for (double d : calcVarValues(defId, factorVar)) {
factorValueList.add(d);
}
}
double[] factorVarValues = factorValueList.stream().mapToDouble(Double::doubleValue).toArray();
List自体にAPIがあり、パラメータ付きのtoArray()ですが、場合によっては、モデルチェンジ後にArrayコンパイルは問題なく、実行時報が間違っていて、具体的に何が間違っているのか忘れてしまい、次回発見してから文章を更新します.
安全のためにstreamを使うのが一番信頼でき、コードもきれいです.