• 数组汇总0426


    数组

    数组定义:数组是相同数据类型按一定顺序排列的集合。

    数组数据类型:数组属于引用类型,同时数组创建后大小不可更改

    数组定义语法:

    先声明再赋值     int[] ns(int[] ns = null;); ns = new int[5];
    声明并赋        int[] ns = new int[5];
    声明并赋值*繁    int[] ns = new int[]{1,2,3};
    声明并赋值*简    int[] ns ={1,2,3};(简版声明和赋值必须在同一行)

    数组语法含义:

    int[] array = new int[10];

    等号左边 等号右边

    int:

    告知编译器,创建int类型数据,有且只能储存int类型数据

    new:

    new需要再计算机堆区申请连续内存空间

    【将申请到的空间内数据全部清空】                                  

    []:

    告知编译器,当前创建数据类型为数组类型

    告知编译器,数组名array是引用类型数据

    int:

    前后呼应,告知编译器这是int类型数据

    array:

    1.定义数组名,也是操作数组的核心数据,变量名

    2.数组名array是引用类型数据

    [10]:

    告知编译器,数组容量capacity是10

    数组元素的访问:

      数组中的元素可以通过下标来访问。下标从0开始,到【数组长度-1】结束。数组访问修改:

      arr[0]获取数组第一个元素

      arr[3]获取第四个元素

    数组作为参数进行传递格式:

    //数组作为参数进行传递格式:
        //方法调用时仅仅在方法中调用数组名即可
       // 方法定义时需完整定义:int[] arr
    class Demo5 {
        public static void main(String[] args) {
            int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
            reverse(arr);
        }
        public static void reverse(int[] arr) {
        }

    数据引用传递:

      基本数据类型

        基本数据类型中储存的为值,传递给其他对象后,不会影响本身的变化,相当与副本操作

      引用数据类型

        引用数据类型中储存的为地址,传递给其他对象后,会影响本身变化,相当与共享原对象的操作权限

                                ???数组类型返回值public static int[] calu(int[] arr){...return arr}

    数组常用方法:

       for(i=0;i<ns.length;i++){}

       for(元素类型 元素变量:遍历对象){ 执行的代码 }

      快速打印数组内容:     System.out.println(Arrays.toString(ns))

       System.arraycopy(原数组,起始位置,新数组,新数组起始位置,原数组元素复制个数);

      java.util.Array.copyOf(原数组,新数组长度);

    数组异常:

      数组取值范围:0~(length-1)

      数组下表越界会产生:java.lang.ArrayIndexOutOfBoundryException

      Int[] data = null;

      System.out.println(data[0])

      异常:java.lang.NullPointerException  调用未开辟空间的数组会发生空指向异常;

    数组默认值:

                         整数:0

                         小数:0.0

                         字符:u0000

                         boolean:flase

                         引用类型:null

    可变长参数:

      使用方法类似数组:(数组类型…形参名)需放置最后

      

    public static void main(String[] args) {
      print("hello","java","comeon");//此处可随意更改参数数量,print("hello");也可运行
    }
        
    public static void print(String ...string) {
      for(String temp:string) {
        System.out.println(temp);
      }

    }

    二维数组

    声明赋值方式              具体声明赋值方法

    先声明、再分配   数据类型[][] 数组名; 数组名 = new 数据类型[高维长度][低维长度];

    声明并分配空间   数据类型[][] 数组名 = new 数据类型[高维长度][低维长度];

    声明并赋值(繁)  数据类型[][] 数组名 = new 数据类型[高维长度][] //不规则数组,自行new低维数组

    声明并赋值(简)  数据类型[] 数组名 = {{v1,v2,v3},{v4,v5},{v6}}; //显示初始化

    int[][] douarr=new int[2][];
        douarr[0]=new int[] {4,5};
        douarr[1]=new int[] {1,2,3};

    数组其他知识点:

      寻址时,可设置初始位置index为-1

    【有new时,一定会哟用到堆区空间/计算机原理-小端字节序,大端字节序】

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

    语法层面:硬性要求

      《Java语言规范》:规定了什么,就能用什么。没有规定的,绝不能用。

      《Java虚拟机规范》:规定了怎么用,就支持怎么用,没有规定的,随便用。(支持自我创造)


    数组练习题

    1.数组插入数值

    2.杨辉三角

    3.在数组中返回所有目标值的下标

    4.选择排序

    5.冒泡排序

    6.数组逆序


    更新履历:

      0425:初步汇总完成

      0426:增加数组调用规范

      0426:增加练习题

  • 相关阅读:
    1022.游船出租
    1021.统计字符
    1020.最小长方形
    1017.还是畅通工程
    1019.简单计算器
    1015.还是A+B
    1014.排名
    1013.开门人和关门人
    1011.最大连续子序列
    1009.二叉搜索树
  • 原文地址:https://www.cnblogs.com/raising/p/12774517.html
Copyright © 2020-2023  润新知