ITPub博客

首页 > 应用开发 > Java > 学习笔记:Java数组

学习笔记:Java数组

原创 Java 作者:码邦主666 时间:2021-01-28 15:11:16 0 删除 编辑
Java提供了一种叫作数组的数据结构,它是一种用来存储相同类型元素的固定大小顺序集合。 数组用于存储数据集合,但也可以将数组视为相同类型的变量集合。

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

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

1. 声明数组变量

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

语法


dataType[] arrayRefVar;   // 推荐方式。
// 或者
dataType arrayRefVar[];  // 有效,但不是推荐方式。


 

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

示例

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

double[] myList;   // 推荐方式。
// 或者double myList[];   // 有效,但不是推荐方式。

 

 

2. 创建数组

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

// 声明
dataType[] arrayRefVar;   // 推荐方式。
// 创建
arrayRefVar = new dataType[arraySize];

 

上面语句做了两件事 -

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

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

dataType[] arrayRefVar = new dataType[arraySize];

 

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

dataType[] arrayRefVar = {value0, value1, ..., valuek};

 

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

示例

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

double[] myList = new double[10];

 

下图表示数组 myList。 这里, myList数组中包含十个 double值,索引从 0到 9。
数组存储结构示例

3. 处理数组

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

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

import java.util.*;


public class Test {


    public static void main(String[] args) {

        double[] myList = { 10.01, 12.19, 23.44, 43.95, 77.88, 65.00 };


        // 打印所有元素

        for (int i = 0; i < myList.length; i++) {

            System.out.print(myList[i] + ", ");

        }

        System.out.println(" ");


        // 求和

        double total = 0;

        for (int i = 0; i < myList.length; i++) {

            total += myList[i];

        }

        System.out.println("总和:" + total);


        // 查找最大值

        double max = myList[0];

        for (int i = 1; i < myList.length; i++) {

            if (myList[i] > max)

                max = myList[i];

        }

        System.out.println("元素最大值:" + max);

    }

}

 

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

10.01, 12.19, 23.44, 43.95, 77.88, 65.0,  
总和:232.47
元素最大值:77.88

 

3.1. foreach循环

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

示例

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

import java.util.*;


public class Test {


    public static void main(String[] args) {

        double[] myList = { 10.01, 12.19, 23.44, 43.95, 77.88, 65.00 };


        // Print all the array elements

        for (double element : myList) {

            System.out.print(element+", ");

        }

    }

}

 

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

10.01, 12.19, 23.44, 43.95, 77.88, 65.0,

 

3.2. 将数组传递给方法

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

示例

import java.util.*;


public class Test {


    public static void main(String[] args) {

        double[] myList = { 10.01, 12.19, 23.44, 43.95, 77.88, 65.00 };


        // Print all the array elements

        printArray(myList);

    }


    public static void printArray(double[] array) {

        for (int i = 0; i < array.length; i++) {

            System.out.print(array[i] + " ");

        }

    }

}

 

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

10.01 12.19 23.44 43.95 77.88 65.0

 

3.3. 从方法返回数组

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

import java.util.*;


public class Test {


    public static void main(String[] args) {

        double[] myList = { 10.01, 12.19, 23.44, 43.95, 77.88, 65.00 };


        // Print all the array elements

        printArray(myList);

        printArray(reverse(myList));

    }


    public static void printArray(double[] array) {

        for (int i = 0; i < array.length; i++) {

            System.out.print(array[i] + " ");

        }

        System.out.println(" ");

    }


    public static double[] reverse(double[] list) {

        double[] result = new double[list.length];


        for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {

            result[j] = list[i];

        }

        return result;

    }

}

 

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

10.01 12.19 23.44 43.95 77.88 65.0  
65.0 77.88 43.95 23.44 12.19 10.01


这里的话我也将我之前在学习java过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的扣扣学习交流群697888503,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。

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等)可以使用相同的方法。




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985551/viewspace-2754138/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-10-16

  • 博文量
    141
  • 访问量
    79732