在leetcode上刷一道关于二维数组的题,题目本身不难,但是我却卡在了对于ArrayList的使用上,所以写一篇博客记录一下。
创建
首先是ArrayList 二维数组的创建初始化:
List<List<元素类型>> 数组名=new ArrayList<List<元素类型>>();
例如:
List<List<Integer>> re=new ArrayList<List<Integer>>();
增加删除:
增加的,我们主要是通过建立一维的数组,进行对二维的添加,删除也同理
增加
List<Integer> FirstRow=new ArrayList<Integer>(); //新建一维数组
FirstRow.add(1); // 给一维数组加入元素
re.add(FirstRow); //将一维数组加入二维数组
删除
//remove有两个重载方法
remove(int index)
remove(Object o)
remove(1) //是删除索引为1的元素
remove(new Integer(1)) //则删除元素1
定点读取
我主要卡在了这一步,我知道一维要读区某一位用的函数是get(int num ) ,num表示要读取哪一位,我以为二维的是,get(int row,int col),例如我想读取二维数组的 [1,2]个位置的元素,就为get(1,2),然而其实不是这样的,真正的调用方式是这样
re.get(1).get(2) //先get行号,后get 列号
定点修改
对于一维的ArrayList 修改方法为set
demo.set(int index 要修改的索引值, 要修改的值)
二维的话
只需要
re.get(i 行号).set(j 列号, 要修改的值)