ホームページ  >  記事  >  Java  >  Java でマップ キーの `int[]` を `Integer[]` に変換するにはどうすればよいですか?

Java でマップ キーの `int[]` を `Integer[]` に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 11:59:02200ブラウズ

How to Convert an `int[]` to an `Integer[]` for Map Keys in Java?

マップ キーの int[] を Integer[] に変換する方法

Java でコレクションとマップを操作する場合、次のことが重要です。プリミティブ データ型の制限を認識しています。整数の配列をキーとして Map に保存する必要がある場合など、特定の状況では、Map キーはオブジェクトである必要があるため、プリミティブ int[] 配列を直接使用することはできません。ここで、int[] から Integer[] への変換が便利です。

あなたの特定のケースでは、int[] 配列の大規模なデータセットがあり、Map を作成したいと考えています。各配列の組み合わせの頻度をカウントします。この問題に対処する方法は次のとおりです。

Java 8 (一行)

Java 8 では、ストリームを使用して int[] を Integer[] に変換する簡単な方法が提供されています。

<code class="java">int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

// To boxed array
Integer[] boxedData = Arrays.stream(data).boxed().toArray(Integer[]::new);</code>

コレクターの使用

あるいは、コレクターを使用して int[] を List に変換し、その後 Integer に変換することもできます。 [] array:

<code class="java">int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

// To boxed list
List<Integer> boxedList = Arrays.stream(data).boxed().collect(Collectors.toList());

// To boxed array
Integer[] boxedData = boxedList.toArray(new Integer[boxedList.size()]);</code>

注:

マップ キーとして使用するために int[] を Integer[] に変換することは可能ですが、配列をキーとして使用する場合の欠点。

  • 配列は変更可能であるため、予期しない動作やメモリ リークの可能性があります。
  • 配列は値ベースではなく、同じ要素を持つ 2 つの配列が異なることを意味します。参照は別のキーとして扱われます。

ほとんどの場合、配列ではなくカスタム オブジェクトまたはラッパー クラスをマップ キーとして使用することをお勧めします。

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

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