JavaSE-10 数组的创建和使用

一、什么是数组?

数组是相同数据类型数据的有序集合,其中,每一个数据称为一个数组元素,每个数组元素都可以通过下标来进行访问

举个例子,nums = {1,2,3,4,5} 就是一个整数数组,每个数组元素都是整数,从左到右的下标分别是0,1,2,3,4,nums[0]=1,nums[4]=5。

二、创建数组

1. 一般方法

在程序中使用数组之前必须声明数组变量

dataType[] arrayRefVar;  //首选
	or
dataType arrayRefVar[];  //不建议使用  

使用new操作创建数组(分配内存)

dataTpye[] arratRefvar = new dataType[arraysize]

一个例子

public static void main(String[] args) {
        int[] nums;  //声明
        nums = new int[5];  //创建一个大小为5的整数数组,此时数组元素是对应类型的默认值
        //int[] nums1 = new int[5];  //声明并创建

        //赋值
        nums[0]=1;
        nums[1]=2;
        nums[2]=3;
        nums[3]=4;
        nums[4]=5;

        //nums.length:数组长度
        for (int i = 0; i < nums.length; i++) {
            System.out.println(nums[i]);

        }
    }

2. 初始化

数组一般有三种初始化方法:

  • 静态初始化:创建时直接赋值
  • 动态初始化:先创建再赋值
  • 默认初始化:动态初始化若创建后不赋值,此时数组元素为相应类型的默认值,即为默认初始化
  1. 静态初始化

    //静态初始化:直接赋值
    int[] a = {1,2,3};
    
  2. 动态初始化

    //动态初始化:先创建再赋值,若不赋值即为默认初始化
    int[] b = new int[3];
    //int[] b;
    //b = new int[3];
    b[0] = 1;
    b[1] = 2;
    b[2] = 3;
    

3. 数组的四个基本特点

  • 数组长度是固定的,数组一旦被创建,它的大小就是不可改变的
  • 数组元素必须是相同类型,不允许出现混合类型
  • 数据中的元素可以是任意数据类型,包括基本数据类型和引用数据类型
  • 数组变量是引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身是对象,Java中对象是在堆中的

4. 内存分析

Java内存:

  • 堆:存放new的对象和数组
  • 栈:存放基本变量类型(具体数值),引用对象的变量(引用在堆里面的地址)
  • 方法区:包含所有的class和static变量

我们看一下动态创建数组时的内存情况:
在这里插入图片描述

三、数组的使用

1. for-each循环

public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        //for-each循环
        //遍历数组的所有元素
        for (int array : arrays) {
            System.out.println(array);
        }
    }

2. 数组作为方法的参数

public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        printArray(arrays);
    }

    //数组作为方法的参数
    //打印数组所有元素
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }
    }

3. 数组作为返回值

public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        int[] resverse = reverse(arrays);
        printArray(resverse);
    }

    //数组作为返回值
    //反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];
        for (int i = 0,j = result.length-1; i < arrays.length; i++,j--) {
            result[j] = arrays[i];
        }
        return result;
    }

    //打印数组所有元素
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i]+" ");
        }
    }

4. 多维数组

多维数组可以看成是数组的数组,比如二维数组,可以看作是特殊的一维数组,即每个数组元素都是一个一维数组。

//一个2行5列的二维数组
int[][] a= new int[2][5];
public static void main(String[] args) {
        //一个二维数组
        int[][] arraysTwo = {{0,1,2},{3,4,5}};
        System.out.println(arraysTwo[0][1]);  //1
        System.out.println(arraysTwo[1][0]);  //3
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值