Java在手,世界我有!!!Java基础之数组——数组的定义、分类和使用

目录

前言

What:数组是什么

Why:为什么使用数组

How:数组怎么用

数组使用代码举例


前言

上一篇小编带大家回忆了一把Java中的方法以及方法的重载,今天小编带大家来看一下Java当中的数组,又是一个很基础的知识点。小编相信,水滴方能石川,一名优秀的程序员除了丰富的项目经验以外,还需要扎实的基础,一步一个脚印,希望这篇文中能对正在看的你所有帮助和启发。

What:数组是什么

数组的概念:数组是一种容器,可以同时存放多个数据类型一致的数据值。

数组的特点:

1.数组是一种引用数据类型;

2.数组当中的多个数据,数据类型必须保持一致;

3.数组的长度在运行期间不可以改变。

Why:为什么使用数组

为什么要使用数组,这就要从变量的使用来说了。通常来说,我们定义一个变量,一般只给它赋一个值,如果想要给同一数据类型的变量的赋值时也可以写成:int a=5,b=7,c=10;但是这也是定义了int类型的3个变量a,b,c,分别给他们赋值的。假设这时候我们要统计小组成员的成绩,5个人我们可以定义5个变量来接收成绩。但是如果这时候要求统计全班的成绩,难道你要定义50个变量来接受全班同学的成绩吗?这样明显加大了我们的工作量。而数组却可以解决这个问题,就像上面的定义所说:数组是一种容器,可以同时存放多个数据类型一致的数据值。

How:数组怎么用

2种常见的数组初始化方式:

1.动态初始化(指定长度):在创建数组的时候,直接指定数组当中数据的元素个数。

2.静态初始化(指定内容):在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。

初始化数组的格式:

1.动态初始化格式:    数据类型[] 数组名称=new 数据类型[数组长度];

2.静态初始化格式:  数据类型[] 数组名称=new 数据类型[]{元素1,元素2,元素3,...};

静态初始化数组的省略写法:

数据类型[] 数组名称 ={元素1,元素2,元素3,...};

注意:虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素的具体内容,可以自动推算出来长度。

数组定义代码举例:

public class Demo01Array {
    public static void main(String[] args) {
       
        //动态初始化数组:创建一个数组,里面可以存放300个int数据
        int[] arrayA=new int[300];

        //动态初始化数组:创建一个数组,里面可以存放5个字符串
        String[] arrayC=new String[5];

        //静态初始化数组:直接创建一个数组,里面装的全都是int数字,具体为:5  15  25
        int[] arrayInt=new int[]{5,15,25};

        //静态初始化数组:直接创建一个数组,里面装的全都是字符串,具体为:“Hello”  "World"  "Java"
        String[] arrayStr=new String[]{"Hello","World","Java"};

         //静态初始化数组的省略写法
        int[] arrayInt={1,5,9};
    }
}

定义数组初始化拆分注意事项:

1.静态初始化的标准形式可以拆分成两部分;

2.动态初始化的标准形式也可以拆分成两部分;

3.静态初始化一旦使用省略形式,就不能拆分成两个步骤了。

        //动态初始化的标准形式可以拆分成两部分
        int [] arrayA;
        arrayA=new int[5];

        //静态初始化的标准形式也可以拆分成两部分;
        int[] arrayB;
        arrayB=new int[]{5,7,9};

数组使用代码举例

数组默认值:使用动态初始化数组的时候,元素会有一个默认值

public class Demo03ArrayUse {
    public static void main(String[] args) {
        String[] arrayA=new String[3];
        int[] arrayB=new int[5];

        //直接打印数组元素
        System.out.println(arrayA[0]);      //null
        System.out.println(arrayB[0]);       //0
}

 数组的索引:数组的索引从0开始,到“数组长度-1”结束。

 数组常见问题1:如果访问数组元素的时候,索引编号并不存在,那么将会发生:数组索引越界异常 ArrayIndexOutOfBoundsException。

public class Demo05ArrayIndex {
    public static void main(String[] args) {
        int[] arrayInt=new int[]{5,8,9};
        System.out.println(arrayInt[0]);        //5
        System.out.println(arrayInt[1]);        //8
        System.out.println(arrayInt[2]);        //9
        //错误代码:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
        //System.out.println(arrayInt[3]);
    }
}

数组常见问题2:所有的引用类型变量,都可以赋值为一个null值。但是代表什么都没有。数组必须进行new初始化才可以使用其中的元素,如果只是赋值了一个null,没有进行new创建,那么将会发生:空指针异常 NullPointerException

public class Demo06ArrayNull {
    public static void main(String[] args) {
        int[] array=null;
        //错误代码:空指针异常
        System.out.println(array[0]);
    }
}

获取数组的长度:数组名称.length

public class Demo07ArrayLength {
    public static void main(String[] args) {
        int[] arrayB={10,23,25,63,58,55,55,2,3,8,8,9,5,10,23,25,63,58,55,55,2,3,8,8,9,5};
        int len=arrayB.length;
        System.out.println(len);
    }
}

数组的遍历:for循环遍历数组

public class Demo08Arrayprint {
    public static void main(String[] args) {
        //定义一个数组
        int[] arrayInt={5,8,9,6,45,45,12,56,7};
        //数组的遍历
        for(int i=0;i < arrayInt.length;i++){
            System.out.println(arrayInt[i]);
        }
    }

求数组最小值(求最大值同)

public class Demo10ArrayMin {
    public static void main(String[] args) {
        //求数组元素最小值
        int[] arrayInt=new int[]{7,80,90,80,-100};
        int min=arrayInt[0];
        for (int i = 1; i < arrayInt.length; i++) {
            if(arrayInt[i]<min){
                min=arrayInt[i];
            }
        }
        System.out.println("数组当中的最小值为;"+min);
    }
}

数组的反转:见博客

数组作为方法的参数进行传递:当调用方法的时候,向方法的小括号中进行传参,传递进去的是数组的地址值。

public class Demo01ArrayParam {
    public static void main(String[] args) {
        int[] array={10,20,30,40,50};
        //调用此方法,传入一个数组作为参数
        printArray(array);
    }
    public static void printArray(int[] array){
        System.out.println("printArray方法收到的参数是:"+array);        //地址值
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
}

 数组作为方法的返回值: 数组作为方法的返回值,返回的其实也是数组的地址值。

public class Demo02ArrayReturn {

    public static void main(String[] args) {
        int[] result=calculate(10,20,30);
        System.out.println("mian方法接收到的返回值数组是:"+result);     //地址值
        System.out.println("三个数之和是:"+result[0]);
        System.out.println("三个数的平均数是:"+result[1]);
    }
    public static int[] calculate(int a,int b,int c){
        int sum=a+b+c;
        int avg=sum/3;
        int[] array={sum,avg};
    }
}

数组作为返回值和参数总结:一个方法可以有0,1,多个参数,但是只能有0或者1个返回值,不能有多个返回值。 如果希望一个方法有多个返回值,用数组接收。 数组既可以作为的方法的参数,也可以作为方法的返回值。 数组作为方法的参数,传递进去的是数组的地址值。 数组作为方法的返回值,返回的其实也是数组的地址值。

数组的知识今天就先讲解到这里,有什么理解不到位的地方欢迎各位博友评论区踩沙发哦!

猜你喜欢

转载自blog.csdn.net/wtt15100/article/details/108042393