求数组的最大值

  • 原理
    1. 假定数组的第一个元素就是最大值
    2. 通过循环从第二个元素开始依次和假定的最大值进行比较
    3. 如果找到了比假定的最大值大的数,就替换最大值

插入数字到指定位置

  • 原理
    1. 在元素组a的基础上将长度扩展1为,得到一个新数组b
    2. 把原来的数组里的元素拷贝到新数组去
    3. 确定插入数字的位置例如index
    4. 从新数组b的倒数第2个元素【b.length-2】直至index的位置一次往后挪位
    5. 最后把待插入的数插到b数组的index的位置

冒泡排序的原理

  • 原理
    1. N个数两两之间相互比较
    2. 使用二重循环,外层循环控制比较的轮数,内层循环控制每轮剩下的数当中比较的次数
    3. 如果有N个数,那么比较的轮数就为N-1次
    4. 如果有N个数,每一轮比较的次数就为N-i-1
    5. 两两之间相互比较,发现大小交换位置
    6. 二重循环结束,得到有序数组
  • 口诀
    1. N个数字来排队
    2. 两两相比小靠前
    3. 外层循环N-1
    4. 内层循环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)方法
    1. 在一个数组中查找指定的元素【在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}};

注意:在[]里边不能指定数组的长度