«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как преобразовать int[] в Integer[] для использования в качестве ключей карты в Java?

Как преобразовать int[] в Integer[] для использования в качестве ключей карты в Java?

Опубликовано 3 ноября 2024 г.
Просматривать:257

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

Преобразование int[] в целое число[] для ключей карты в Java: подробное руководство

В Java ключи карты требуют равенства ссылок, чего невозможно достичь с примитивными типами, такими как int[]. При работе с массивами int[] и необходимости использовать их в качестве ключей на карте необходимо преобразовать их в подходящий тип объекта. Давайте рассмотрим различные варианты этого преобразования.

Метод 1: Arrays.stream().boxed().toArray()

В Java 8 представлен краткий метод преобразования int[] в Integer[ ] с использованием потокового API:

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

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

Метод 2: IntStream.of().boxed().toArray()

Аналогичный подход с использованием IntStream:

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

Соображения относительно ключей карты

Хотя Integer[] может служить ключом, он может быть не идеальным из-за:

  • Перегрузка: Integer кэширует значения от -128 до 127, что приводит к потенциальным коллизиям в больших наборах данных.
  • Накладные расходы на производительность: Integer[] создает новое целое число объекты для каждого значения int, что приводит к дополнительным издержкам.

Альтернативные параметры

Для повышения производительности и уникальности ключа рассмотрите возможность использования:

  • Пользовательский Объекты: Создайте собственный класс, инкапсулирующий int[] и реализующий hashCode() и Equals() для эффективного поиска.
  • Longs: Поскольку длинные значения могут представлять целые числа, они могут использоваться в качестве ключей в Картах с более высокой производительностью, чем Integer[].
  • Внешние библиотеки: Посмотрите в библиотеке коллекций Apache Commons или Google Guava специализированные коллекции, которые эффективно обрабатывают примитивные типы.

Помните, что лучший подход зависит от размера набора данных и требований к производительности. Выбор подходящего метода позволит вам эффективно отслеживать частоту комбинаций int[] в вашем наборе данных.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3