String
のリストは、オブジェクトのリストにmap
としたいシリアル化されたデータを表しています。時々そこに解析エラーとストリームは、ちょうど停止している私は障害点までリストを回復することができるしたいと思います、しかし例外を除いてマッピング
strings.map { gson.fromJson(it, Model::class.java) }
// .doOtherStuff
:私は、次のコードを使用します。たとえば、項目7でエラーが発生した場合は、doOtherStuff
に正常に処理された6項目を取得します。
これを行う最も慣用的な方法は何ですか?私は、構文解析が成功するかどうかを見るためにリストをフィルタリングすることができますが、それは高価な操作が2回実行されていることです。
これはパフォーマンスの影響を知っていますか?私が使用しているリストはかなり大きいです...私はそれが2N最悪の場合になることを認識しますが、コンパイラが何とかそれを最適化したかどうか疑問に思っています。 –
'filterNotNull'で' map'の代わりに 'mapNotNull'を使用して2NからNまでの複雑さを減らすことができます。 – mfulton26
mapNotNullはlistのnull値を無視しますが、そうではありません。彼らはちょうど解析できません。 –