У меня есть a HashSet<Integer>
с набором Integers
в нем. Я хочу превратить его в массив, но вызов
hashset.toArray();
возвраты Object[]
. Есть ли лучший способ бросить его к массиву int
кроме итерации через каждый элемент вручную? Я хочу передать массив
void doSomething(int[] arr)
который не примет Объект [] массив, даже если я попытаюсь бросить его как
doSomething((int[]) hashSet.toArray());
В ArrayUtils Apache есть вот это (это все еще итерации за сценой):
doSomething(ArrayUtils.toPrimitive(hashset.toArray()));
Их всегда хорошо проверять на подобные вещи.
public int[] toInt(Set<Integer> set) {
int[] a = new int[set.size()];
int i = 0;
for (Integer val : set) a[i++] = val;
return a;
}
Теперь, когда я написал код за вас, это уже не то руководство, не так ли? ;)