Heim >Java >javaLernprogramm >Wie konvertiere ich ein „int[]' in ein „Integer[]' für Map Keys in Java?

Wie konvertiere ich ein „int[]' in ein „Integer[]' für Map Keys in Java?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 11:59:02285Durchsuche

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

So konvertieren Sie int[] in Integer[] für Kartenschlüssel

Bei der Arbeit mit Sammlungen und Karten in Java ist es wichtig, dies zu tun sind sich der Einschränkungen primitiver Datentypen bewusst. In bestimmten Situationen, beispielsweise wenn Sie ein Array von Ganzzahlen als Schlüssel in einer Map speichern müssen, können primitive int[]-Arrays nicht direkt verwendet werden, da Map-Schlüssel Objekte sein müssen. Hier ist die Konvertierung von int[] in Integer[] praktisch.

In Ihrem speziellen Fall haben Sie einen großen Datensatz von int[]-Arrays und möchten eine Map um die Häufigkeit jeder Array-Kombination zu zählen. So können Sie dieses Problem lösen:

Java 8 (One Line)

Java 8 bietet eine einfache Methode zum Konvertieren von int[] in Integer[] mithilfe von Streams:

<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>

Kollektoren verwenden

Alternativ können Sie Kollektoren verwenden, um int[] in eine Liste umzuwandeln, die dann in eine Ganzzahl umgewandelt werden kann []-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>

Hinweis:

Während es möglich ist, int[] in Integer[] zur Verwendung als Zuordnungsschlüssel umzuwandeln, ist es wichtig, Folgendes zu berücksichtigen Nachteile der Verwendung von Arrays als Schlüssel. Dazu gehören:

  • Arrays sind veränderbar, was zu unerwartetem Verhalten und potenziellen Speicherverlusten führen kann.
  • Arrays sind nicht wertbasiert, d. h. zwei Arrays mit denselben, aber unterschiedlichen Elementen Referenzen werden als unterschiedliche Schlüssel behandelt.

In den meisten Fällen wird empfohlen, ein benutzerdefiniertes Objekt oder eine Wrapper-Klasse als Zuordnungsschlüssel anstelle eines Arrays zu verwenden.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein „int[]' in ein „Integer[]' für Map Keys in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn