AI智能
改变未来

Java基础语法(十)数组?不不不,是麻袋,既能装白菜,又能装妹子

文章目录

  • 前言
  • 数组
  • 一维麻袋的定义
  • 怎么往麻袋里面装白菜
  • 怎么取出我需要的白菜
  • 多维数组(多维麻袋)
  • 定义一个多维麻袋
  • 往这个多维麻袋里防白菜
  • 按一定规律往每个麻袋放白菜
  • 查看我们放入的是否正确
  • Arrays类操作麻袋
  • 小练习
  • 结语
  • 前言

    好了,我们来说一下数组。

    数组

    什么是数组?在Java中,数组就是存储多个相同数据的集合,他们的内存地址是相邻的,所以可以通过数组取值。

    这么说,是不是有点不好理解,那么这样呢?

    我有一颗白菜,手拿着就能回家,那如果是十几颗呢?

    我就可以用麻袋!麻袋!装进去,带回家!是的你要存的数据就是白菜,而这个数组就是你要用的麻袋~~~~~

    麻袋中的白菜怎么拿出来我需要用的呢?

    下标,Java中的下标是以0开始的,什么是下标,就是你从0开始查,查到某个你要的数据,查到几,下标就是几,就相当于,我在装白菜的时候,说“这是第0个白菜,这是第1个白菜…”,而他们也能听懂(别管他们能不能听懂,我说能就能,哈哈~~),等我需要哪一颗白菜的时候,喊一声,他就自己跳出来了

    白菜可以是任意类型的,但是麻袋要和白菜必须是同样的类型

    一维麻袋的定义

    两种方法

    1. 直接定义法:直接把白菜装进麻袋a里
    int[] a = {1,2,3,4,5,6,7};
    1. 实例化对象定义,初始化大小:不知道有什么白菜,先拿一个知道大小的麻袋a,然后再往里面装白菜
    int[] a = new int[10];

    怎么往麻袋里面装白菜

    多种数据,多种数据,多种数据,重要的事情说三遍
    多种,怎么办?一个一个往里面装~~
    怎么一个一个装?这种重复的事情,当然交给循环来干了!
    比如说我要把1-66装进去

    int[] a = new int[66];for(int i = 0;i<a.length;i++){a[i] = i+1;  //这就是我告诉白菜,你是第i个白菜}

    怎么取出我需要的白菜

    我要把名字叫做5的白菜从麻袋里面拿出来,怎么做?

    想必你们也都看到了这个a[i],这个就是对麻袋a中叫做i的白菜进行操作~

    代码接着上面的

    System.out.println(a[5]);//结果是6,为啥是6,因为我们的白菜是从1开始往里面装的,而名字是从0开始取的

    如果想全部取出,也可以用循环选手哦!

    多维数组(多维麻袋)

    如果我的白菜,有的老,有的嫩,我想分开装,怎么办?

    我告诉你,你这没必要用多个麻袋装,你可以在麻袋里在放几个麻袋啊。

    这叫做:多维数组(麻袋里面的白菜,换成了麻袋,然后麻袋里面的麻袋里面装白菜)

    定义一个多维麻袋

    定义一个里面含有三个麻袋的麻袋,每个麻袋可以装4个白菜

    int[][] a = new int[3][4];

    往这个多维麻袋里防白菜

    先打开这个a[]大麻袋,再打开里面的a[0][]小麻袋,然后才能往里面放白菜

    小麻袋也有名字,也是下标,我们要往麻袋里面的第一个小麻袋的第一个位置放一个名字叫做1的白菜,这样做:

    a[0][0] = 1;

    按一定规律往每个麻袋放白菜

    先往第一个小麻袋放,在往第二个小麻袋放…

    for (int i = 0;i<a.length;i++){for (int j = 0;j<a[0].length;j++){a[i][j] = j;}}

    查看我们放入的是否正确

    将我们的数组输出就行了

    System.out.println(Arrays.toString(a[0]));System.out.println(Arrays.toString(a[1]));System.out.println(Arrays.toString(a[2]));

    结果是:

    [0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3]

    Arrays类操作麻袋

    我们可以使用Arrays类操作我们的麻袋

    • 给麻袋的白菜赋值:通过 fill 方法。
      将指定的 int 类型白菜分配给指定 int 型麻袋指定范围中的每个元素
    int[][] a = new int[3][4];Arrays.fill(a[0], 5);Arrays.fill(a[1], 5);Arrays.fill(a[2], 5);System.out.println(Arrays.toString(a[0]));System.out.println(Arrays.toString(a[1]));System.out.println(Arrays.toString(a[2]));/*输出结果:[5, 5, 5, 5][5, 5, 5, 5][5, 5, 5, 5]*/
    • 对麻袋中的白菜按照大小排序:通过 sort 方法,按升序。
      排序,从小到大
    int[][] a = new int[3][4];//随便给几个值a[0][2] = 5;a[1][3] = 3;a[2][0] = 4;System.out.println(Arrays.toString(a[0]));System.out.println(Arrays.toString(a[1]));System.out.println(Arrays.toString(a[2]));/*排序前:[0, 0, 5, 0][0, 0, 0, 3][4, 0, 0, 0]*/Arrays.sort(a[0]);Arrays.sort(a[1]);Arrays.sort(a[2]);System.out.println(Arrays.toString(a[0]));System.out.println(Arrays.toString(a[1]));System.out.println(Arrays.toString(a[2]));/*排序后:[0, 0, 0, 5][0, 0, 0, 3][0, 0, 0, 4]*/
    • 比较数组:通过 equals 方法比较数组中元素值是否相等。
      不相等返回false
    int[][] a = new int[3][4];int[][] b = new int[3][4];System.out.println(Arrays.deepEquals(a, b));//结果:false

    小练习

    定义一个二维麻袋,里面有三个麻袋,分别装3个女孩(用字符串显示名字)

    结语

    今天把数组学习了,可以做点小练习,毕竟我觉得(我觉得)不简单,那么,今天就到这里就要说再见了呢,拜拜~

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » Java基础语法(十)数组?不不不,是麻袋,既能装白菜,又能装妹子