List<Integer> → int[]

Object型からプリミティブ型でラッパーが必要になる宿命から、、
Integerリストから、int[] が欲しい時の為に、、、

public static int[] toIntArrays(Collection<Integer> values){
   int[] iary = (int[])Array.newInstance(int.class, values.size());
   int n = 0;
   for(Iterator<Integer> it=values.iterator(); it.hasNext();n++)
      iary[n] = it.next();
   return iary;
}

このように単純なメソッドを用意しておくのも良いかも。
悪ノリで、この int n = 0; と for 文のような書き方でなくて、
Stream collect 集計処理の Accumrator を実装記述で書いて、、、

public static int[] toIntArrays(Collection<Integer> values){
   return values.stream().collect(()->(int[])Array.newInstance(int.class, values.size())
   , new BiConsumer<int[], Integer>(){
      private int i = 0;
      @Override
      public void accept(int[] r, Integer v){
         r[i++] = v;
      }
   }, (r, t)->{});
}

AtomicInteger を書かないのも面白いかも。