ホームページ > Java > &#&チュートリアル > ストリームを使用してJavaでリストをint[]に効率的に変換するにはどうすればよいですか?

ストリームを使用してJavaでリストをint[]に効率的に変換するにはどうすればよいですか?

DDD
リリース: 2024-12-23 20:20:24
オリジナル
828 人が閲覧しました

How to Efficiently Convert a List to an int[] in Java Using Streams?

リスト<整数>の効率的な変換to int[] Java Streams の使用

問題:

開発者が List を変換しようとすると課題に遭遇します。 Java の int[] に。 List.toArray() は Object[] を生成しますが、これを Integer[] や int[] に直接キャストすることはできません。

初期解決策:

一般的に使用される解決策ループを使用してリストを反復処理し、各要素を int[] 内の対応するインデックスに手動で割り当てます。 array.

Java 8 ストリームの強化:

ただし、Java 8 では、より簡潔で効率的なアプローチを提供するストリームの強化が導入されました。プリミティブな int 型を処理するように特別に設計された IntStreams を利用することで、変換プロセスを合理化できます。

mapToInt() と Lambda を使用したソリューション:

int[] example1 = list.stream().mapToInt(i -> i).toArray();
ログイン後にコピー

The mapToInt () メソッドは Stream の各要素を変換します。 int への変換により、IntStream への変換が可能になります。ラムダ式 (i -> i) は単に整数をボックス解除するだけです。

mapToInt() とメソッド参照による解決策:

あるいは、メソッド参照を使用することもできます。 :

int[] example2 = list.stream().mapToInt(Integer::intValue).toArray();
ログイン後にコピー

考えたプロセス:

Stream#toArray() はデフォルトで Object[] を返すため、mapToInt() を利用して Integer 要素を int に変換します。 IntStreams は、int[] 配列を生成するネイティブ toArray() メソッドを提供します。

IntStreams を利用することで、int[] にキャストする前に追加のアンボックス化や Integer[] への明示的な変換の必要性を回避できます。この最適化により変換プロセスが合理化され、コードの簡潔さと効率の両方が向上します。

以上がストリームを使用してJavaでリストをint[]に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート