亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

精通 Java 数组:高效数据处理综合指南

Java 提供数据结构 数组,存储固定大小同类型元素的顺序集合。数组用于存储数据集合,但更有用的视角是将其视为同类型变量的集合。

不声明 number0、number1... number99 等单独变量,而是声明一个数组变量如 numbers,用 numbers[0]、numbers[1]... numbers[99] 代表单个变量。

本教程介绍如何声明数组变量、创建数组、使用索引变量处理数组。

声明数组变量

程序中使用数组必须声明引用数组的变量,并指定变量可引用的数组类型。声明数组变量语法:

语法

dataType[] arrayRefVar; // 首选方式
或 dataType arrayRefVar[]; // 可行但非首选

注意 − dataType[] arrayRefVar 为首选风格。dataType arrayRefVar[] 源自 C/C++,Java 采纳以兼容 C/C++ 程序员。

示例

double[] myList; // 首选方式
或 double myList[]; // 可行但非首选

创建数组

用 new 操作符创建数组,语法:

语法

arrayRefVar = new dataType[arraySize];

此语句做两件事:

声明数组变量、创建数组、赋引用可合为一条语句:

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。

精通 Java 数组:高效数据处理综合指南

处理数组

处理数组元素常用 for 循环或 foreach 循环,因所有元素同类型且数组大小已知。

示例

完整示例展示创建、初始化、处理数组:

Live Demo
public class TestArray { 
  public static void main(String[] args) { 
    double[] myList = {1.9, 2.9, 3.4, 3.5}; 
    // 打印所有数组元素
    for (int i = 0; i < myList.length; i++) { 
      System.out.println(myList[i] + " "); 
    } 
    // 求和所有元素
    double total = 0; 
    for (int i = 0; i < myList.length; i++) { 
      total += myList[i]; 
    } 
    System.out.println("Total is " + total); 
    // 查找最大元素
    double max = myList[0]; 
    for (int i = 1; i < myList.length; i++) { 
      if (myList[i] > max) max = myList[i]; 
    } 
    System.out.println("Max is " + max); 
  } 
}

输出:

输出

1.9 2.9 3.4 3.5 
Total is 11.7 
Max is 3.5

foreach 循环

JDK 1.5 引入新 for 循环称 foreach 或增强 for 循环,可不使用索引变量顺序遍历完整数组。

示例

以下代码显示数组 myList 所有元素:

Live Demo
public class TestArray { 
  public static void main(String[] args) { 
    double[] myList = {1.9, 2.9, 3.4, 3.5}; 
    // 打印所有数组元素
    for (double element: myList) { 
      System.out.println(element); 
    } 
  } 
}

输出:

输出

1.9 
2.9 
3.4 
3.5

向方法传递数组

正如可向方法传基本类型值,也可传数组。例如以下方法显示 int 数组元素:

示例

public static void printArray(int[] array) { 
  for (int i = 0; i < array.length; i++) { 
    System.out.print(array[i] + " "); 
  } 
}

调用时传数组。例:以下语句调用 printArray 显示 3, 1, 2, 6, 4, 2:

示例

printArray(new int[]{3, 1, 2, 6, 4, 2});

从方法返回数组

方法也可返回数组。例如以下方法返回另一数组的逆序数组:

示例

public static int[] reverse(int[] list) { 
  int[] result = new int[list.length]; 
  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { 
    result[j] = list[i]; 
  } 
  return result; 
}

The Arrays 类

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

序号方法 & 描述
1public static int binarySearch(Object[] a, Object key) - 用二分搜索算法搜索指定 Object 数组(Byte、Int、double 等)中的指定值。调用前数组必须排序。返回搜索键索引(若包含),否则返回 (–(插入点+1))。
2public static boolean equals(long[] a, long[] a2) - 两个指定 long 数组相等返回 true。数组相等指元素数相同且对应元素全等。其他基本类型(Byte、short、Int 等)同理。
3public static void fill(int[] a, int val) - 将指定 int 值赋给指定 int 数组每个元素。其他基本类型同理。
4public static void sort(Object[] a) - 按元素自然顺序将指定对象数组排序为升序。其他基本类型同理。

java

  1. 掌握 C# 数组:声明、初始化与核心操作完全指南
  2. C++ 数组完全指南:声明、初始化、多维数组与指针技巧
  3. C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
  4. 精通 Java 运算符:类型、语法与实战示例
  5. Java 数组复制技术:全面指南
  6. 精通 Java 接口:概念、实现与最佳实践
  7. 精通 Java Try-With-Resources:自动资源管理详解
  8. Java 注解详解:类型、放置位置与实战示例
  9. Java 数组教程:声明、创建、初始化与示例代码
  10. Java 对象数组创建:分步指南
  11. Java 冒泡排序详解:核心原理、完整代码与步骤演示
  12. Java 选择排序详解:核心原理、完整代码与步骤演示