Search code examples
javaarraysinthashset

How can I convert a Java HashSet<Integer> to a primitive int array?


I've got a HashSet<Integer> with a bunch of Integers in it. I want to turn it into an array, but calling

hashset.toArray();

returns an Object[]. Is there a better way to cast it to an array of int other than iterating through every element manually? I want to pass the array to

void doSomething(int[] arr)

which won't accept the Object[] array, even if I try casting it like

doSomething((int[]) hashSet.toArray());

Solution

  • Apache's ArrayUtils has this (it still iterates behind the scenes):

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

    They're always a good place to check for things like this.