从一个二维数组出发:定义、遍历、查值

话说,今天看到一个break的用法,示例举了一个如何在二维数组中查找到某个数字的题,代码如下图,在这个方法里由内及外,break的使用影响了外循环的代码,其实那一刹那,我第一反应是,二维数组如何循环来着,已然完全忘记了,所以虽始于break,但其实我得先从二维数组开始上下求索。![一连串的问题](https://img-blog.csdnimg.cn/20190802142702645.png)
![如何在二维数组中查找到某个数字](https://img-blog.csdnimg.cn/20190801113219860.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTM5Mjc3OQ==,size_16,color_FFFFFF,t_70)一:定义:
首先,回忆一下什么是二维数组?
  1. 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。
    2.那么二维数组如何初始化呢,跟一维数组一样,
    如上体所示,静态初始化为int[][] arr = {{1,2,3},{4,5},{6}};或者int[][] arr = new int[][]{{1,2,3},{4,5},{6}};
    动态初始化为Int[][] arr = new int[5][6];
    arr[0][0]=3;(此时其他值为0,如arr[0][1]=0;)
    两种初始化的防范区别在于:静态初始化在赋值的时候就定义了数组大小,开辟的数组空间就会刚好。而动态数组,则会根据初始化定义的大小开辟空间,可能会出现开辟范围开大了的情况如举例中arr,有5个一维数组,每个数组6个元素,没有赋值的就会初始化为0。
    二:遍历:
    for循环遍历:
    在这里插入图片描述
    增强for循环遍历:
    在这里插入图片描述
    单就遍历来讲还有第三种:迭代器遍历
    Iierator能遍历,不能修改,可以删除,如果想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove()方法,因为它的remove()方法不仅会删除元素,还会维护一个标志,用来记录目前是不是可删除状态
    但是,ListIterator有add方法,但是当时加了并不会遍历出来
    在这里插入图片描述
    ListIterator还可以修改,ListIterator有set方法
    在这里插入图片描述三:查值:
    查值在开篇就已经说过了,值的一提的是这个例题里,在外循环加了逻辑与&&的判断,使得外循环也会收内循环的控制。
    提到逻辑与:浅谈一下&&和&的异同
    同:&和&&都是表示逻辑与,判断,当两边都是true则返回true,有一边是false则返回false。
    异:当左边是false时,&会继续判断右边,而&&则会短路直接返回false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值