Javaの配列Integerをintに変換するすべは…?
ちょっとJavaでポーカー作ってたんですけど、
やっぱカードリストは配列じゃなくてList(LinkedListとかArrayList)を使いたい気がします。
で、例えばカード交換するとき、
もしGUIのアプリケーションだったら、ViewがCardオブジェクト持ってて、クリックでon/off切り替えられて、
「交換」ボタンを押したらonになってるViewを集めてきてそのCardオブジェクト達を引数に渡して「交換」するんでしょうけど、
今作ってるのはIRC(チャット)上で動くポーカーなんで、交換もコマンドで入力します。
なんで、「1,4,5番目のカードを交換したい」みたいな要求をしたいわけです。
で、まあそのごにょごにょで、コマンド受け取ってそれを数字にするときList
この番号のカードを交換して下さい、って渡す引数にList
で、List#toArrayメソッドで、Integerの配列を得ることはできるんですが、
Integerをintに変換できねーのかよ、ってちょっとつっこみたく思ってました。
(なおIntegerオブジェクト自体はintに暗黙に変換できます、その逆も容易です)
List<Integer> integerList = new ArrayList<Integer>(); Integer[] integerArray = integerList.toArray(new Integer[0]); int[] intArray = (int[]) integerArray; //エラー
ということで調べてみた所、
やっぱループさせていちいち中身変えなきゃいけないっぽいですね。
List<Integer> integerList = new ArrayList<Integer>(); int[] intArray = new int[integerList.size()]; for (int i=0; i<integerList.size(); i++) { intArray[i] = integerList.get(i); // Integer }
こんなんあちらこちらでやるのはばかばかしいので、設計考えろってことですね。
そもそもint[]なんか使うなハゲっていう意見もありましたが。