Java教程 目录

Java 数组

Java提供了一种叫作数组的数据结构,它是一种用来存储相同类型元素的固定大小顺序集合。 数组用于存储数据集合,但也可以将数组视为相同类型的变量集合。

声明一个数组变量(如:numbers)并使用numbers[0]numbers[1]...numbers[99]来表示单个变量,例如number0number1...number99,而不是单独地声明各个变量。

本教程介绍如何声明数组变量,创建数组和索引访问数组。

1. 声明数组变量

要在程序中使用数组,需要先声明一个变量以引用该数组,并且要指定该变量的数组类型。 以下是声明数组变量的语法 -

语法

---------- ------------   -- -----
-- --
-------- --------------  -- -----------

注 - 格式:dataType [] arrayRefVar是推荐方式。 格式:dataType arrayRefVar []来自C/C++语言,可在Java中采用以适应C/C++程序员。

示例

以下代码片段是此语法的示例 -

-------- -------   -- -----
-- --
------ ---------   -- -----------

2. 创建数组

可以使用new运算符来创建数组,如以下语法 -

-- --
---------- ------------   -- -----
-- --
----------- - --- --------------------

上面语句做了两件事 -

  • 它使用new dataType[arraySize]来创建了一个数组。
  • 它将新创建的数组的引用分配给变量arrayRefVar

声明一个数组变量,创建一个数组,并将该数组的引用分配给变量,可以在一个语句中完成,如下所示 -

---------- ----------- - --- --------------------

或者,可以按如下方式创建数组 -

---------- ----------- - -------- ------- ---- --------

通过索引访问数组元素。 数组索引值从0开始; 也就是说,它们从0开始到arrayRefVar.length - 1

示例

下面语句中声明了一个数组变量myList,它创建了一个包含10double类型元素的数组,并将数组变量的引用分配给myList -

-------- ------ - --- -----------

下图表示数组myList。 这里,myList数组中包含十个double值,索引从09

3. 处理数组

处理数组元素时,经常使用for循环或foreach循环,因为数组中的所有元素都是相同的类型,并且数组的大小是已知的。

示例
这是一个完整的示例,演示了如何创建,初始化和处理数组 -

------ ------------

------ ----- ---- -

    ------ ------ ---- ------------- ----- -
        -------- ------ - - ------ ------ ------ ------ ------ ----- --

        -- ------
        --- ---- - - -- - ---- -------------- ---- -
            -------------------------- - -- ---
        -
        -------------------- ---

        -- --
        ------ ----- - --
        --- ---- - - -- - ---- -------------- ---- -
            ----- -- ----------
        -
        ------------------------ - -------

        -- -----
        ------ --- - ----------
        --- ---- - - -- - ---- -------------- ---- -
            -- ---------- ---- ----
                --- - ----------
        -
        --------------------------- - -----
    -
-

执行上面示例代码,得到以下结果:

------ ------ ------ ------ ------ -----  
---------
-----------

3.1. foreach循环

JDK 1.5引入了foreach循环或增强for循环,它能够在不使用索引变量的情况下顺序遍历整个数组。

示例

以下代码演示如何遍历数组myList中的所有元素 -

------ ------------

------ ----- ---- -

    ------ ------ ---- ------------- ----- -
        -------- ------ - - ------ ------ ------ ------ ------ ----- --

        -- ----- --- --- ----- --------
        --- ------- ------- - ------- -
            --------------------------- ---
        -
    -
-

执行上面示例代码,得到以下结果:

------ ------ ------ ------ ------ -----

3.2. 将数组传递给方法

就像将原始类型值传递给方法一样,也可以将数组传递给方法。 例如,以下printArray()方法用来打印int数组中的元素 -

示例

------ ------------

------ ----- ---- -

    ------ ------ ---- ------------- ----- -
        -------- ------ - - ------ ------ ------ ------ ------ ----- --

        -- ----- --- --- ----- --------
        -------------------
    -

    ------ ------ ---- ------------------- ------ -
        --- ---- - - -- - ---- ------------- ---- -
            ------------------------- - - ---
        -
    -
-

执行上面示例代码,得到以下结果:

----- ----- ----- ----- ----- ----

3.3. 从方法返回数组

方法可以返回数组。 例如,以下方法返回一个与给定参数数组相反的数组 -

------ ------------

------ ----- ---- -

    ------ ------ ---- ------------- ----- -
        -------- ------ - - ------ ------ ------ ------ ------ ----- --

        -- ----- --- --- ----- --------
        -------------------
        ----------------------------
    -

    ------ ------ ---- ------------------- ------ -
        --- ---- - - -- - ---- ------------- ---- -
            ------------------------- - - ---
        -
        -------------------- ---
    -

    ------ ------ -------- ---------------- ----- -
        -------- ------ - --- --------------------

        --- ---- - - -- - - ------------- - -- - ---- ------------ ---- ---- -
            --------- - --------
        -
        ------ -------
    -
-

执行上面示例代码,得到以下结果:

----- ----- ----- ----- ----- ----  
---- ----- ----- ----- ----- -----

3.4. Arrays类

java.util.Arrays类包含各种静态方法,用于排序和搜索数组,比较数组和填充数组元素。 对于所有基本类型,这些方法都会重载。

编号 方法 描述
1 public static int binarySearch(Object[] a, Object key) 使用二进制搜索算法搜索指定的Object(Byte,Int,double等)数组以获取指定值。 必须在进行此调用之前对数组进行排序。 如果搜索关键字包含在列表中,则返回搜索关键字的索引; 否则,它返回( -(插入点 + 1))。
2 public static boolean equals(long[] a, long[] a2) 如果两个指定的long数组相等,则返回true。 如果两个数组包含相同数量的元素,则两个数组被认为是相等的,并且两个数组中的所有相应元素对相等。如果两个数组相等,则返回true。 所有其他原始数据类型(Byte,Short,Int等)可以使用相同的方法。
3 public static void fill(int[] a, int val) 将指定的int值分配给指定的int数组的每个元素。所有其他原始数据类型(Byte,Short,Int等)可以使用相同的方法。
4 public static void sort(Object[] a) 根据元素的自然顺序,将指定的对象数组按升序排序。 所有其他原始数据类型(Byte,Short,Int等)可以使用相同的方法。

上一篇:Java字符串操作示例程序
下一篇:Java构造函数