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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 11:21:09697ブラウズ

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

変換リスト Java で int[] に

List を変換しようとしたときint[] を使用すると、List.toArray() の制限により混乱が生じることがよくあります。 Object[] を返しますが、この配列を int[] に直接キャストすることはできません。

この問題に対処するための一般的なアプローチは、質問に示されているようにループを使用することです。ただし、Java 8 では、ストリームを使用したより効率的で簡潔なソリューションが導入されています。

ストリームの使用

IntStream の導入により、Java 8 ではプリミティブ型を処理する便利な方法が提供されます。 intのような。次のコードは、List を変換する方法を示しています。ストリームを使用した int[] への変換:

int[] example1 = list.stream().mapToInt(i -> i).toArray();
// OR
int[] example2 = list.stream().mapToInt(Integer::intValue).toArray();

思考プロセス

  • 単純な Stream#toArray は Object[] 配列を返しますが、これは望ましくありません。
  • IntStream は int 用に設計された特別なストリームです
  • Stream から IntStream を取得するには、mapToInt メソッドを使用します。
  • mapToInt は、Integer を int にマップする ToIntFunction を受け取ります。これは、ラムダまたはメソッド参照として実装できます。
  • Integer#intValue は、Integer をアンボックス化して、基礎となる int 値を取得します。
  • あるいは、単純なアンボックス化を使用して、mapToInt 内のラムダを置き換えることもできます。その結果、より簡潔な例 1 が得られます。

このストリームベースのアプローチ変換プロセスが簡素化され、手動ループの必要がなくなります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。