Heim >Java >javaLernprogramm >Wie konvertiere ich int[] in Integer[] zur Verwendung als Map-Schlüssel in Java?

Wie konvertiere ich int[] in Integer[] zur Verwendung als Map-Schlüssel in Java?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 11:40:40772Durchsuche

How to Convert int[] to Integer[] for Use as Map Keys in Java?

Int[] in Integer[] für Map-Schlüssel in Java konvertieren: Eine umfassende Anleitung

In Java erfordern Map-Schlüssel Referenzgleichheit, die nicht erreicht werden kann mit primitiven Typen wie int[]. Wenn Sie mit int[]-Arrays arbeiten und diese als Schlüssel in einer Map verwenden möchten, müssen Sie diese in einen geeigneten Objekttyp konvertieren. Lassen Sie uns verschiedene Optionen für diese Konvertierung untersuchen.

Methode 1: Arrays.stream().boxed().toArray()

Java 8 führte eine prägnante Methode zum Konvertieren von int[] in Integer[ ein ] mit Stream-API:

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

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

Methode 2: IntStream.of().boxed().toArray()

Ein ähnlicher Ansatz mit IntStream:

<code class="java">Integer[] primitiveToBoxed = IntStream
        .of(data)
        .boxed()
        .toArray(Integer[]::new);</code>

Überlegungen zu Kartenschlüsseln

Während Integer[] als Schlüssel dienen kann, ist es möglicherweise nicht ideal, weil:

  • Überladung:Integer speichert Werte dazwischen -128 bis 127, was zu potenziellen Kollisionen in größeren Datensätzen führt.
  • Leistungsaufwand: Integer[] erstellt neue Integer-Objekte für jeden int-Wert, was zu zusätzlichem Aufwand führt.

Alternative Optionen

Für eine bessere Leistung und Schlüsseleindeutigkeit sollten Sie Folgendes verwenden:

  • Benutzerdefinierte Objekte: Erstellen Sie eine benutzerdefinierte Klasse, die int[] kapselt und implementiert hashCode() und equal() für eine effiziente Suche.
  • Longs: Da Long-Werte ganze Zahlen darstellen können, können sie als Schlüssel in Maps mit besserer Leistung als Integer[] verwendet werden.
  • Externe Bibliotheken: Suchen Sie in der Apache Commons Collections Library oder in Google Guava nach spezialisierten Sammlungen, die primitive Typen auf performante Weise verarbeiten.

Denken Sie daran, dass der beste Ansatz davon abhängt die Größe des Datensatzes und die Leistungsanforderungen. Durch die Auswahl der geeigneten Technik können Sie die Häufigkeit von int[]-Kombinationen in Ihrem Datensatz effizient verfolgen.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich int[] in Integer[] zur Verwendung als Map-Schlüssel 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