(JAVA)数组

(JAVA)数组

所谓数组,就是若干相同类型的元素集合。

🐧一维数组

  1. 示例:
public class test {
    public static void main(String[] args)   {
         int[] a = new int[3];
         a[0] = 1;
         a[2] = 5;
        System.out.println(""+a[0]+a[1]+a[2]);
    }
}

在这里插入图片描述

  1. 内存分析(简述):
    在这里插入图片描述
    java语言中内存分为两种:栈内存堆内存

    栈内存:存放在方法中定义的一些基本数据类型的变量和引用类型的变量

    堆内存:存放由new运算符创建的数组和对象。

  2. 对于某些数组元素,当分配内存空间(new)后,系统会自动初始化它们

    类型默认初始化
    byte0
    short0
    int0
    long0L
    char‘\u0000’(表示空)
    float0.0F
    double0.0
    booleanfalse
    Stringnull

    注意:

    int[] a;//声明名称为x的int型数组
    a = new int[3];//a数组中包含3个元素,并为这3个元素分配内存空间
    //a[0]=0, a[1]=0, a[2]=0
    
  3. 一维数组的初始化

    String[] str = {"总有人间一两风","填我十万八千梦"};
    System.out.println(str.length);
    System.out.println(str[0]);
    

    在这里插入图片描述


    在这里插入图片描述

  4. 数组类常用方法:

    方法功能
    X.length()返回任意类型数组X的数组大小
    X.equals(Y)判断数组X是否和数组Y为同一个数组
    Y = X.clone()将X数组克隆到Y数组

    示例:
    在这里插入图片描述
    c = a实际上是让c也指向a中在堆存放的数组,
    这里equals也等于=


    在这里插入图片描述
    可以发现ba指向的空间不同,与上例不同,这里修改b[0]不会改a[0]

🦉二维数组

  1. 示例:
public class test {
    public static void main(String[] args)   {
        int[][] x = {{1,0,5},
                     {1,0,5}}
        for (int i = 0; i < x.length; i++) {
            for (int j = 0; j < x[i].length; j++) {
                System.out.print(x[i][j]+" ");
            }
            System.out.println();
        }
    }
}

在这里插入图片描述

  1. 内存分析:
    在这里插入图片描述
    这里x[0]x[1]相当于一维数组。

  2. c语言中的二维数组必须都是矩形。

    int a[2][3]; 
    int b[2][3] = {{1},{2}};
    //b[0][0] = 1, b[1][1] = 0;
    

    java中却不一定

    int[][] c = new int[2][3];//矩形
    int[][] d = new int[2][];//可以根据需要来new每一行的大小
    c[0] = new int[100];
    c[1] = new int[1];
    

    示例:乘法口诀表~🪄

import java.util.Scanner;

public class test {
    public static void main(String[] args)   {
        Scanner sca = new Scanner(System.in);
        System.out.println("请输入n");
        int n = sca.nextInt();
        int[][] mt = new int[n][];
        //得到i*j的结果
        for (int i = 0; i < mt.length; i++) {
            mt[i] = new int[i+1];//定义每一行的个数
            for (int j = 0; j < mt[i].length ; j++) {
                mt[i][j] = (i+1)*(j+1);
            }
        }
        //打印
        for (int i = 0; i < mt.length; i++) {
            //输出每一行
            System.out.print(i+1+"|");//输出首行提示
            for (int j = 0; j < mt[i].length; j++) {
                System.out.print("\t"+mt[i][j]);
            }
            //输出低行提示
            System.out.println();
            if(i == mt.length-1)
            {
                for (int j = 0; j < mt.length; j++) {
                    System.out.print("----");
                }
                System.out.print("\n  ");
                for (int j = 0; j < mt.length; j++) {
                    System.out.print("\t"+(j+1));
                }
            }
        }
    }
}

在这里插入图片描述

待续~

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值