java数组详解
产生随机数并逆序输出
![](https://img.haomeiwen.com/i13888234/f18487a6c17bed13.png)
![](https://img.haomeiwen.com/i13888234/826e4c1fc4b2a097.png)
数组排序 : 选择排序、冒泡排序
选择法排序的思路:
1.把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来
比较完后,第一位就是最小的
2.然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来
比较完后,第二位就是第二小的
(从小到大)
冒泡法排序的思路:
第一步:从第一位开始,把相邻两位进行比较
如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的
第二步: 再来一次,只不过不用比较最后一位
![](https://img.haomeiwen.com/i13888234/5a1cbe26e090f35c.png)
增强型for循环更快遍历一个数组
增强型for循环只能用来取值,却不能用来修改数组里的值
![](https://img.haomeiwen.com/i13888234/d270a281f44a12a8.png)
![](https://img.haomeiwen.com/i13888234/ef106a9d018d22aa.png)
复制数组
System.arraycopy(src, srcPos, dest, destPos, length) java中API的使用
src: 源数组、srcPos: 从源数组复制数据的起始位置、dest: 目标数组、destPos: 复制到目标数组的起始位置、length: 复制的长度
要注意下标的越界!!!
![](https://img.haomeiwen.com/i13888234/85fd03a9ab1864d0.png)
合并数组
![](https://img.haomeiwen.com/i13888234/5400504a9d0781e0.png)
二维数组
实现二维数组的操作
定义一个5X5的二维数组。 然后使用随机数填充该二维数组。找出这个二维数组里,最大的那个值,并打印出其二维坐标
![](https://img.haomeiwen.com/i13888234/f664b2537c136f49.png)
数组的工具类(好用且常用的类)
Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。
![](https://img.haomeiwen.com/i13888234/28d0a3e7ec92a490.png)
数组复制
与使用System.arraycopy进行数组复制类似的, Arrays提供了一个copyOfRange方法进行数组复制。不同的是System.arraycopy,需要事先准备好目标数组,并分配长度。 copyOfRange 只需要源数组就就可以了,通过返回值,就能够得到目标数组了。
说白了就是将数组中复制出来的值赋值给新数组
![](https://img.haomeiwen.com/i13888234/510f212d2cafef98.png)
转换为字符串
如果要打印一个数组的内容,就需要通过for循环来挨个遍历,逐一打印但是Arrays提供了一个toString()方法,直接把一个数组,转换为字符串,来遍历查询。
![](https://img.haomeiwen.com/i13888234/aefc521c82c05c8d.png)
![](https://img.haomeiwen.com/i13888234/f6f1aa2cbe5dd02f.png)
![](https://img.haomeiwen.com/i13888234/2921f6bca9fd7672.png)
![](https://img.haomeiwen.com/i13888234/ae25e2ff40406be6.png)
![](https://img.haomeiwen.com/i13888234/3db9eaedbcb9ca83.png)
对二维数组进行排序
参考思路:
1.先把二维数组使用System.arraycopy进行数组复制到一个一维数组
2.然后使用sort进行排序
3.最后再复制回到二维数组。
![](https://img.haomeiwen.com/i13888234/d40b1c57e71723fd.png)
![](https://img.haomeiwen.com/i13888234/99efe7c7267fc2b4.png)
冒泡排序