zoukankan      html  css  js  c++  java
  • JavaOO03

    数组的定义:
      数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。
    数组的基本特点:
    1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
    2. 其元素必须是相同类型,不允许出现混合类型。元素的类型可以是java 支持的任意类型
    3. 数组类型可以是任何数据类型,包括基本类型和引用类型。
    4. 数组的元素在堆内存中被分配空间,并且是连续分配的
    5. 使用new 关键字对数组进行 内存的分配。每个元素都会被jvm 赋予默认值。默认规则:整数:0 浮点数:0.0 字符:u0000 布尔:false 引用数据类型:null。
    6. 数组的元素都是有序号的,序号从0开始,0序的。称作数组的下标、索引、角标
    数组的声明:
    1. 声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
    2. 声明一个数组的时候并没有数组真正被创建。
    3. 构造一个数组,必须指定长度。
    数组格式:
    元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度];   //  int [] arr = new int [3];
    []:代表这是数组类型。
    数组名:一个合法的标识符,命名规范 和 局部变量 规范一致。
    new:是java 的关键字。用来向JVM申请内存的。
    元素类型[元素个数] :决定了向JVM申请的内存空间的大小。 
                 大小:元素类型字节数 * 元素个数
    元素的个数:只要是一个合法的java 表达式就可以。 返回一个int 类型的值即可


    example

      


    数组的常见问题:

    数组的优缺点:
    优点:
    1:可以保存若干个数据。
    2:随机访问的效率很高。根据下标访问元素效率高(元素连续分配空间)。
    缺点:
    1:数组的元素的类型必须一致。元素类型必须一致。
    2:连续分配空间在堆中,如果数组的元素很多,对内存的要求更加的严格。
    3:根据内容查找元素效率比较低,需要逐个比较个。
    4:删除元素、插入元素效率比较低,需要移动大量的元素。
    5:数组定长,不能自动扩容。
    6:数组没有封装,数组对象只提供了一个数组长度的属性,但是没有提供方法用来操作元素。
    java 提供了一整套的 针对不同需求的 对于容器的解决的方案。集合框架部分。不同的容器有不同的特点,满足不同的需求。数组的缺点都会被干掉。

    数组的初始化:静态初始化、动态初始化、默认初始化
    静态初始化:int[] arr = { 123 };// 静态初始化基本类型数组;
    动态初始化:int[] arr = new int[2];//动态初始化数组,先分配空间;
          arr[0]=1;//给数组元素赋值;
          arr[1]=2;//给数组元素赋值;
    默认初始化:int arr[] = new int[2]; // 默认值:0,0
          boolean[] b = new boolean[2]; // 默认值:false,false
          String[] s = new String[2]; // 默认值:null, null
    数组的遍历:for循环   for-each循环


    基于数组的拷贝操作:拷贝、删除、扩容
      System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。


     ArrayCopy Code


    java.util.Arrays类
    JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序、查找、填充、打印内容等常见的操作。
    打印数组  Arrays.toString(arr)


    数组元素的排序  Arrays.toString(arr)


    二分法查找  Arrays.binarySearch(arr, key)


    数组填充


    多维数组
      多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。
    数组的排序:

     SortTest Code

    数组的查找:

     ArithmeticTest Code
  • 相关阅读:
    FileZilla相关配置说明
    pod install速度慢,pod repo update 速度慢解决方法
    Vue安装
    mac 远程桌面连接
    .NET MVC 支付宝支付(即时到账)
    windows下生成ssl
    gentelella 开源后台使用记录
    node、npm、gulp安装
    武汉在院新冠肺炎患者清零
    致最可爱的战疫人
  • 原文地址:https://www.cnblogs.com/rookie97/p/11609513.html
Copyright © 2011-2022 走看看