zoukankan      html  css  js  c++  java
  • java笔记五——数组

    一、数组的基本概念

    1、数组可以看成是多个相同类型数据的集合。

    2、数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。

    3、数组的长度一旦确定,就不能修改。

    二、一维数组

    一维数组的声明

    一维数组的声明方式有两种:

    • 格式一:数组元素类型 数组名[ ]; 即type var[ ];
    • 格式二:数组元素类型[ ] 数组名; 即type[ ] var;

    例如:

    // 格式1:
    int  a[]; 
    
    // 格式2:
    int[]  a;
    

    注意:JAVA语言中声明数组时不能指定其长度(数组中的元素个数),动态初始化时可以指定其长度。

    如:int a[5]; 这样声明一维数组是非法的。

    数组对象的创建

    JAVA中使用关键字new创建数组对象。

    格式为:数组名 = new 数组元素的类型[数组元素的个数]

    例如:

    // 声明一个int 型的数组
    int[] a;
    // 创建一个数组对象,该数组的容量为3
    a = new[3];
    

    图解数组在内存中的创建过程

    数组的动态初始化

    特点:数组定义 与为数组元素分配空间和赋值的操作分开进行

    例如:

    // 例一:
    int[] arr = new int[3];
    arr[0] = 3;
    arr[1] = 2;
    arr[2] = 1;
    
    // 例二:
    String[] names;
    names = new[3];
    names[0] = "钱学森";
    names[1] = "霍金";
    names[2] = "周深";
    
    

    数组的静态初始化

    特点:在定义数组的同时就为数组元素分配空间并赋值。

    例如:

    // 例一:
    int arr[] = new int[]{3,9,8};
    
    // 例二:
    int[] arr = {3,9,8};
    
    // 错误举例
    int arr[] = new int[3]{3,9,8};
    
    // 错误示例二:
    int arr[];
    arr = {3,9,8};
    

    数组元素的默认初始化

    数组元素类型 元素默认初始值
    byte 0
    short 0
    int 0
    long 0L
    float 0.0F
    double 0.0
    char 0 或写为:'u0000'(表现为空)
    boolean false
    引用类型 null

    三、数组模型

    • 一维数组:一维数组就是一行,一行小格。
    • 二维数组:二维数组就是一行加一列组成的一个平面分成的小格,有行有列。
    • 三维数组:三维数组就是一个立方体。

    四、二维数组

    二维数组的动态初始化

    五、数组元素的引用

    ​ 1、定义并用运算符new为数组分配内存空间后,才可以引用数组中的每个元素,数组元素的引用方式为:arrayName[index], index为数组元素下标,可以是整型常量或整型表达式。如:a[3],b[i],c[6*i]。

     2、数组元素下标从0开始;长度为n的数组的合法下标取值范围为0 n-1

    ​ 3、 每个数组都有一个属性length指明它的长度,例如:a.length的值为数组a的长度(元素个数)。

    六、Arrays工具类的使用

    java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法。

    1 boolean equals(int[] a,int[] b) 判断两个数组是否相等。
    2 String toString(int[] a) 输出数组信息。
    3 void fill(int[] a,int val) 将指定值填充到数组之中。
    4 void sort(int[] a) 对数组进行排序。
    5 int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值。
  • 相关阅读:
    Spring.NET教程(十八)——整合Remoting(应用篇)
    Spring.NET教程(十五)——事务传播行为(基础篇)
    Spring.NET教程(十三)——AOP的配置(基础篇)
    Spring.NET教程(十九)——整合Web Service(应用篇)
    Spring.NET教程(十七)——整合NHibernate和ASP.NET MVC(基础篇)
    VC++打开文件 CFileDialog::DoModal
    通过lua自带例子学习lua 05
    (转)Lua与C/C++交互——Lua调用C/C++
    通过lua自带例子学习lua 08 (3638)
    通过lua自带例子学习lua 07 (3135)
  • 原文地址:https://www.cnblogs.com/tianwenxin/p/14745249.html
Copyright © 2011-2022 走看看