数组

本文详细介绍了Java中的数组,包括定义、声明、创建、初始化、访问数组元素的方法,以及如何使用for循环和for-each循环遍历数组。此外,还展示了如何通过方法传递和返回数组,以及如何对数组进行排序。同时,提到了多维数组的概念和使用,并演示了二维数组的创建和操作。最后,介绍了Java的Arrays工具类及其用途,如数组排序和转换为字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组的定义

数组是相同类型数据的集合。
数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。

数组的声明和创建

首先必须声明数组变量 ,才能在程序中使用数组。下面是声明数组的语法:

int[] array;   // 首选
int array[];

Java通过new操作符来创建数组,语法如下:

dataType[] array=new dataType[arraySize];

数组的元素是通过索引访问的,数组索引从0开始。
获取数组长度:arrays.length

静态初始化
int[] array = {1,2,3,4};
动态初始化
int[] array = new int[2];
array[0] = 1;
array[1] = 2;

数组默认的初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组已经分配空间,其中的每个元素也按照实例变量同样的方式被隐式初始化。

数组的四个基本特点

长度确定。数组一旦被创建,其大小就不可变。
其元素必须是相同类型,不允许出现混合类型。
数组中的元素可以是任何数据类型,包括基本类型和引用类型
数组变量属引用类型,数组也可以看成是对象,数组中每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

数组使用

普通的for循环
For-Each循环
数组作方法入参
数组作返回值

package org.ning;

public class Array {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        // fori循环
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        System.out.println("=====================");
        // 增强for循环
        for(int arr:array){
            System.out.println(arr);
        }
        System.out.println("=====================");
        printArray(array);
        System.out.println("=====================");
        int[] reverse = reverse(array);
        for (int j : reverse) {
            System.out.println(j);
        }
    }

    /**
     * 方法区传参
     * @param array
     */
    public static void printArray(int[] array){
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

    /**
     * 数组反转 ,返回值是数组类型
     * @param array
     * @return
     */
      public static int[] reverse (int[] array){
         int[] reverse = new int[array.length];
          for (int i = 0,j=array.length-1; i < array.length; i++,j--) {
              reverse[j] = array[i];
          }
          return reverse;
      }
}

多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的数组,其中每一个元素都是一个一维数组

二维数组的定义

int arrays[][] = new int[2][5];
// 可以看成两行五列的数组

二维数组的使用

int arrays[][] = {{1,2},{2,3},{3,4},{4,5}}
  System.out.println(arrays[1][0]);
  // 循环打印所有
  for (int i = 0; i < arrays.length; i++) {
            for (int j = 0; j < arrays[i].length; j++) {
                System.out.println(arrays[i][j]);
            }
        }

Arrays 类

数组工具包java.util.Arrays
jdk文档

public class Arrays
extends Object

– 该类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。
– 如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException ,除非另有说明。

– 该类中包含的方法的文档包括实现的简要描述 。 这些描述应被视为实施说明 ,而不是说明书的一部分 。 只要规范本身得到遵守,实现者就可以随意替代其他算法。 (例如,sort(Object[])使用的sort(Object[])不一定是MergeSort,但它必须是稳定的 。)

 int[] arr = {1,4,5,23,245,3467,34,21,1,4,56};
      Arrays.sort(arr); // 排序
      System.out.println(Arrays.toString(arr)); 
标题“51单片机通过MPU6050-DMP获取姿态角例程”解析 “51单片机通过MPU6050-DMP获取姿态角例程”是一个基于51系列单片机(一种常见的8位微控制器)的程序示例,用于读取MPU6050传感器的数据,并通过其内置的数字运动处理器(DMP)计算设备的姿态角(如倾斜角度、旋转角度等)。MPU6050是一款集成三轴加速度计和三轴陀螺仪的六自由度传感器,广泛应用于运动控制和姿态检测领域。该例程利用MPU6050的DMP功能,由DMP处理复杂的运动学算法,例如姿态融合,将加速度计和陀螺仪的数据进行整合,从而提供稳定且实时的姿态估计,减轻主控MCU的计算负担。最终,姿态角数据通过LCD1602显示屏以字符形式可视化展示,为用户提供直观的反馈。 从标签“51单片机 6050”可知,该项目主要涉及51单片机和MPU6050传感器这两个关键硬件组件。51单片机基于8051内核,因编程简单、成本低而被广泛应用;MPU6050作为惯性测量单元(IMU),可测量设备的线性和角速度。文件名“51-DMP-NET”可能表示这是一个与51单片机及DMP相关的网络资源或代码库,其中可能包含C语言等适合51单片机的编程语言的源代码、配置文件、用户手册、示例程序,以及可能的调试工具或IDE项目文件。 实现该项目需以下步骤:首先是硬件连接,将51单片机与MPU6050通过I2C接口正确连接,同时将LCD1602连接到51单片机的串行数据线和控制线上;接着是初始化设置,配置51单片机的I/O端口,初始化I2C通信协议,设置MPU6050的工作模式和数据输出速率;然后是DMP配置,启用MPU6050的DMP功能,加载预编译的DMP固件,并设置DMP输出数据的中断;之后是数据读取,通过中断服务程序从DMP接收姿态角数据,数据通常以四元数或欧拉角形式呈现;再接着是数据显示,将姿态角数据转换为可读的度数格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值