ListとArrayList
ArrayListにどんどん要素を入れていって、途中、再帰的な処理を行うことになった。
しかし問題が。。。sublistが使えない。
ArrayList<Integer> array = new ArrayList<Integer>(); array.add(3); array.add(4); ArrayList<Integer> sublist = (ArrayList<Integer>)array.subList(0, 1);
これだとClassCastExceptionがでてしまう。なんで、subListはArrayListを返さずにListなんだ。
役にたたねぇな、こいつわぁ。とおもって、APIリファレンスをよんでいると、subListはArrayListの継承しているAbstractListのメソッドだと気づく。
でもArrayListみたいによく使うものにSublistがないなんて、なんて言語だ。なんて思いながら、解決方法を探っていると、、、。
JavaではArrayListの変数ではなく、Listの変数を使うらしい。w Listはインタフェースなんで、newできないから、newの時だけArrayList使うんだと。しらねぇ、そんなこと。w
というわけで、次のように直す。
List<Integer> array = new ArrayList<Integer>();
これで解決。Map map = new HashMap() もおなじ理屈なんだってね。いやぁ。初心者まるだしですなぁ。笑 確かに、JythonでもリファレンスをArrayListでつくってるコードはぱっと見、見当たらない。笑