首頁  >  文章  >  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 中時,不能直接使用原始 int[] 數組,因為 Map 鍵必須是物件。這就是將 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 [] 陣列:

<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[] 用作映射鍵,但重要的是要考慮使用數組作為鍵的缺點。其中包括:

  • 陣列是可變的,這可能會導致意外行為和潛在的記憶體洩漏。
  • 陣列不是基於值的,這意味著兩個陣列具有相同的元素但不同引用將被視為不同的鍵。

大多數情況下,建議使用自訂物件或包裝類別作為映射鍵而不是陣列。

以上是如何將 Java 中的映射鍵的 `int[]` 轉換為 `Integer[]`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn