#はじめに
こんにちは、いわっちと申します。
JavaのArrayList<ArrayList<Integer>>などの、二次元配列についてです。
###投稿に至った経緯
先日、AtCoderさんのBeginner Contestに初参加させて頂きまして、その時に二次元配列を利用する問題がありました。
そして、模範解答に二次元配列に対して、要素を直接挿入する場面がありました。基本的に模範解答のコードに関してはC++がメインなので、Javaで書いてると模範解答とは少し違う部分があるのです。
Javaでは二次元配列に直接挿入するとエラーになってしまうので、注意です。よくよく考えれば、すぐ出来ることなのですが、私自身の忘備録も兼ねて投稿させて頂きました。
#2次元配列に要素を直接挿入
細かくいうと直接ではないのですw。やり方としては要素を挿入する前に、newで定義しておくという感じです。直接挿入するやり方は以下の通りです。
Main.java
ArrayList<ArrayList<Integer>> arrays = new ArrayList<ArrayList<Integer>>();
/* ここ */
for (int i = 0; i < index; i++) {
ArrayList<Integer> array = new ArrayList<Integer>();
arrays.add(array);
}
/* */
arrays.get(index - 1).add(2000);
このfor文を入れないとエラーが起きてしまいます。C++だと定義しなくても直でいけるらしいですが、Javaだとダメみたいです。
#おわりに
以上です。これに関して特に言及しているサイトもなかったので、投稿してみました。
何かお力になれたら幸いです。