В Java ключи карты требуют равенства ссылок, чего невозможно достичь с примитивными типами, такими как int[]. При работе с массивами int[] и необходимости использовать их в качестве ключей на карте необходимо преобразовать их в подходящий тип объекта. Давайте рассмотрим различные варианты этого преобразования.
В 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);
Аналогичный подход с использованием IntStream:
Integer[] primitiveToBoxed = IntStream
.of(data)
.boxed()
.toArray(Integer[]::new);
Хотя Integer[] может служить ключом, он может быть не идеальным из-за:
Для повышения производительности и уникальности ключа рассмотрите возможность использования:
Помните, что лучший подход зависит от размера набора данных и требований к производительности. Выбор подходящего метода позволит вам эффективно отслеживать частоту комбинаций int[] в вашем наборе данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3