数组:

image.png
image.png

  1. //1.声明数组
  2. int[] nums;
  3. //2.分配空间
  4. nums = new int[4];
  5. //等价于 int[] unms=new int[4];
  6. //3.赋值
  7. nums[0]=1;
  8. nums[1]=2;
  9. //4.处理数据

数组初始值根据数组类型不同会有不同的初始值。

一维数组:

定义数组:

格式:
数据类型[] 数组名=new 数据类型[数组长度];

或者
数据类型 数组名[]=new 数据类型[数组长度];
注意:

  • 定义时一定要指定数组名和数据类型
  • 必须书写[],表示定义了一个数组而不是一个普通变量
  • 数组长度决定了连续分配空间的个数,可以用length获取数组长度
  • 数组的数据类型决定了每个分配空间的大小

    1. int[] scores=new int[5];
    2. String[] cities=new String[6];

    数组赋值:

    格式:
    数组名[下标]=值;

    1. scores[1]=66;

    数组的初始化:

    格式:
    数据类型[] 数组名={值1,值3值3………值N};
    或者
    住居类型[] 数组名=new 数据类型[]{值1,值3值3………值N};

    1. int[] scores=new int[]{12,133,145};
    2. //等价于:
    3. int[] scores={12,133,145};

    数组排序:

    冒泡法:

    1. int[] stu={16,25,9,90,23};
    2. int t=0;
    3. for (int i=0;i<stu.length;i++){
    4. for (int j = i+1; j < stu.length; j++) {
    5. if (stu[i]<stu[j]){
    6. t=stu[i];
    7. stu[i]=stu[j];
    8. stu[j]=t;
    9. }
    10. }
    11. //结果:[90, 25, 23, 16, 9]

    Arrays类:

    | 方法 | 返回值类型 | 说明 | | —- | —- | —- | | Arrays.equals(nums,nums1) | Boolean | 比较两个数组是否相等 | | Arrays.sort(nums1) | void | 对数组元素进行升序排序 | | Arrays.fill(nums,2) | void | 把数组元素array的所有元素都赋值为val | | Arrays.toString(nums) | string | 将数组转换为一个字符串 | | int nums3[]=Arrays.copyOf(nums,9); | 与被复制数组类型一致 | 将数组复制成一个长度为length的新数组 | | int index=Arrays.binarySearch(nums1,89); | int | 查询数组元素值val在数组中的下标,,如果没有这个数返回数组负的数组长度+1 |

  1. int nums[]={23,55,76,89,23,7};
  2. int nums1[]={23,55,76,89,23,7};
  3. System.out.println(Arrays.equals(nums,nums1));//比较
  4. Arrays.sort(nums1);//升序排序
  5. System.out.println(Arrays.toString(nums1));//打印字符串
  6. Arrays.fill(nums,2);//全部赋值
  7. System.out.println(Arrays.toString(nums));
  8. int nums3[]=Arrays.copyOf(nums,9);//赋值数组
  9. System.out.println(Arrays.toString(nums3));
  10. int index=Arrays.binarySearch(nums1,89);
  11. System.out.println(index);

运行结果:
image.png

二维数组:

  1. int nums[][]={{1,1,1},{2,2,2},{3,3,3}};

QQ图片20210402113718.png