JAVA 数组

  1. 数组的基本概念

    数组指的就是一组相关变量的集合。java中,数组属于引用型数据


    声明并开辟数组

    数据类型 数组名称[]=new 数据类型[长度];
    数据类型[]数组名称=new 数据类型[长度];

    分步完成

    声明数组:  数据类型 数组名称[]=null;
    开辟数组:  数组名称=new 数据类型[长度];

    定义数组:

    package array;
    ​
    /**
     * 定义数组
     */
    public class Demo01 {
        public static void main(String[] args) {
            int data[]=new int[3];
            data[0]=1;
            data[1]=2;
            data[2]=3;
    ​
            for(int x=0;x<data.length;x++){
                System.out.println(data[x]+"、");
            }
        }
    }
    ​

    数组堆内存中保存的是一组信息,对象中堆内存保存的是属性


    在数组的使用过程中首先是开辟新的数组,然后为数组内的每一个元素赋值,这种形式的操作属于数组动态初始化,它的操作特点是:先开辟数组空间,再为数组中的内容赋值,而在数组定义中还提供了静态初始化的操作,即数组定义的同时就设置好了相应的数据内容。

    静态初始化格式如下:

    数据类型 数组名称[]={值,值...};
    数组类型 数组名称[]=new 数据类型[]{值,值,...}

  2. 二维数组

    如果要在二维数组里面确定一个数据,需要行和列一起定位

    动态初始化:

    数据类型  数组名称[][]=new 数据类型{行的个数}{列的个数};

    静态初始化

    数据类型 数据名称[][]=new 数据类型[][]{{值,值,值},{值,值,l值}};

    所谓的二维数组实际上就是多个一维数组变成一个大的数组,并且为每一个一维数组设置一个行号

    二维数组的使用:

    package array;
    ​
    /**
     * 二维数组
     */
    public class Demo05 {
        public static void main(String[] args) {
            //定义二维数组
            int[][] data=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
            //遍历二维数组
            //外层循环控制数列的行
            for (int i = 0; i < data.length; i++) {
                //内层循环控制数列的列
                for (int j = 0; j < data[i].length; j++) {
                    System.out.print(data[i][j]+"/t");
                }
                System.out.println();//换行
            }
    ​
    }
    }
    ​
  3. 数组与方法参数的传递

    既然数组内容可以进行引用传递,那么就可以把数组给方法中的参数,而如果一个方法要想接收参数,则对应的参数类型必须是数组

    数组传递:

    package array;
    ​
    /**
     * 数组和方法参数的传递
     */
    public class Demo06 {
        public static void main(String[] args) {
            //定义数组
            int[] data=new int[]{1,2,3};
            //调用方法
            change(data);//引用传递,等价于:int temp[]=data;
            //遍历数组
            for (int i = 0; i < data.length; i++) {
                System.out.print(data[i]+" ");
            }
    ​
    ​
        }
        /**
         * 此方法的主要功能是进行数组的改变操作,在本方法中会将数组中的每个元素内容乘2
         */
        public static void change(int[] temp){
            for (int i = 0; i < temp.length; i++) {
                temp[i]*=2;
            }
        }
    }
    ​
  4. 数组的操作方法

    数组复制

    数组复制可以将一个数组的部分内容复制到另一个数组之中:

    System.arraycopy(原数组名称,源数组复制开始索引,目标数组名称,目标数组复制开始索引,长度);

    案例:

    package array;
    ​
    /**
     * 数组的拷贝
     * 也称数组的复制
     */
    public class Demo16 {
        public static void main(String[] args) {
            //定义两个数组
            int[] dataA=new int[]{1,2,3,4,5,6,7,8};
            int[] dataB=new int[]{11,22,33,44,55,66,77,88};
            //数组复制
            System.arraycopy(dataA,5,dataB,3,3);
            //输出数组
            System.out.print("A数组为:");
            print(dataA);
            System.out.print("B数组为:");
            print(dataB);
        }
        //专门设置一个输出的方法
        public static void print(int[] temp){
            for (int i = 0; i < temp.length; i++) {
                System.out.print(temp[i]+",");
            }
            System.out.println();//换行
        }
    }
    ​

    数组排序

    数组排序可以按照从小到大的顺序对基本数据类型的数组(int、double)进行排序

    语法如下:

    iava.util.Arrays.sort(数组名称);

    案例:

    package array;
    ​
    /**
     * 数组的排序
     */
    public class Demo17 {
        public static void main(String[] args) {
            //定义数组
            int[] data=new int[]{3,5,6,7,4,9,0};
            //数组排序
            java.util.Arrays.sort(data);
            //输出
            print(data);
        }
        //专门定义一个输出的方法
        public static void print(int[]temp){
            for (int i = 0; i < temp.length; i++) {
                System.out.print(temp[i]+",");
            }
            System.out.println();//换行
        }
    }
    ​

    对象数组

    数组是引用类型,而类也同样是引用类型,所以如果是对象数组的话表示引用类型里面嵌套其他的引用类型

    在之前使用的数组都属于基本数据类型的数组,但是所有的引用数据类型也同样可以定义数组,这样的数组称为对象数组

    对象数组的动态初始化:

    类名称 对象数组名称=new 类名称[长度];

    对象数组的静态初始化:

    类名称  对象数组名称=new 类名称[]{实例化对象,实例化对象,...};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值