„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 03.11.2024
Durchsuche:103

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

Konvertieren von int[] in Integer[] für Map-Schlüssel in Java: 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 hat eine prägnante Methode zum Konvertieren von int[] in Integer[ eingeführt ] mit Stream-API:

int[] data = {1,2,3,4,5,6,7,8,9,10};

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

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

Ein ähnlicher Ansatz mit IntStream:

Integer[] primitiveToBoxed = IntStream
        .of(data)
        .boxed()
        .toArray(Integer[]::new);

Überlegungen zu Kartenschlüsseln

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

  • Überladung: Integer speichert Werte zwischen -128 und 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 Overhead führt.

Alternative Optionen

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

  • Benutzerdefiniert Objekte: Erstellen Sie eine benutzerdefinierte Klasse, die int[] kapselt und hashCode() und equal() für eine effiziente Suche implementiert.
  • Longs: Da lange Werte ganze Zahlen darstellen können, können sie das auch können 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 speziellen Sammlungen, die primitive Typen performant verarbeiten.

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

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3