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 を書かないのも面白いかも。