Как я могу преобразовать Java HashSet <Целое число> в примитивный международный массив?

У меня есть a HashSet<Integer> с набором Integers в нем. Я хочу превратить его в массив, но вызов

hashset.toArray();

возвраты Object[]. Есть ли лучший способ бросить его к массиву int кроме итерации через каждый элемент вручную? Я хочу передать массив

void doSomething(int[] arr)

который не примет Объект [] массив, даже если я попытаюсь бросить его как

doSomething((int[]) hashSet.toArray());
29
задан Jeffrey Bosboom 20 March 2016 в 03:04
поделиться

3 ответа

В ArrayUtils Apache есть вот это (это все еще итерации за сценой):

doSomething(ArrayUtils.toPrimitive(hashset.toArray()));

Их всегда хорошо проверять на подобные вещи.

21
ответ дан 28 November 2019 в 01:28
поделиться

Нет; вам нужно перебрать их. Извините.

2
ответ дан 28 November 2019 в 01:28
поделиться
public int[] toInt(Set<Integer> set) {
  int[] a = new int[set.size()];
  int i = 0;
  for (Integer val : set) a[i++] = val;
  return a;
}

Теперь, когда я написал код за вас, это уже не то руководство, не так ли? ;)

6
ответ дан 28 November 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: