求数组的最大值
- 原理
- 假定数组的第一个元素就是最大值
- 通过循环从第二个元素开始依次和假定的最大值进行比较
- 如果找到了比假定的最大值大的数,就替换最大值
插入数字到指定位置
- 原理
- 在元素组a的基础上将长度扩展1为,得到一个新数组b
- 把原来的数组里的元素拷贝到新数组去
- 确定插入数字的位置例如index
- 从新数组b的倒数第2个元素【b.length-2】直至index的位置一次往后挪位
- 最后把待插入的数插到b数组的index的位置
冒泡排序的原理
- 原理
- N个数两两之间相互比较
- 使用二重循环,外层循环控制比较的轮数,内层循环控制每轮剩下的数当中比较的次数
- 如果有N个数,那么比较的轮数就为N-1次
- 如果有N个数,每一轮比较的次数就为N-i-1
- 两两之间相互比较,发现大小交换位置
- 二重循环结束,得到有序数组
- 口诀
- N个数字来排队
- 两两相比小靠前
- 外层循环N-1
- 内层循环N-1-i
Arrays类的静态方法
- Arrays.tostring()方法
- 将数组整体装换成一个字符串,用中括号[]括起来,数组元素之间用逗号隔开
- Arrays.sort()方法
- 将数组进行升序排序,注意它仅能进行升序排列,不能进行倒序排列
- Arrays.equals(a, c)方法
- 用来比较两个数组是否完全一样【长度和内容】如果完全一样则返回true,否则返回false
- Arrays.fill(d, 100)方法
- 用来将一个数组填充成指定的值
- Arrays.copyOf(a, a.length);方法
- 复制一个指定长度的数组给以新的数组
- Arrays.binarySearch(a, 24)方法
- 在一个数组中查找指定的元素【在a数组里边查找24这个数】,返回元素在数组中下标位置,注意在调用这个方法前要先对数组进行升序排列【调用一下Arrays.sort()方法】
- 注意:
- 如果针对char类型的,排序是按照字母的ASCII码值进行升序排列
- 如果针对String类型的,排序是按照字母的ASCII码值进行升序排列【如果碰到一样的,则依次比较第二个字母】
二维数组的定义与使用
- 先声明再分配空间
- 类型[][]数组名;
int[][] a;
// 数组名 = new 类型[M][N] (M表示多少行,N表示多少列)
a = new int[4][6];
- 声明的同时分配空间
- 类型[][] 数组名=new 类型[M][N]; (M表示多少行,N表示多少列)
- 注意:二维数组在分配空间的时候,最高维度的长度大小不能省略
int[][] a=new int[5][];
- 初始化赋值的两种方式
int[][] a = { {1,2,3,4}, {2,2,2,2}, {3,3,3}};
int[][] a = new int[][]{ {1,2,3,4}, {2,2,2,2}, {3,3,3}};
注意:在[]里边不能指定数组的长度