JavaSE - 数组

本文详述JavaSE中的数组概念,涵盖一维数组和二维数组的创建、初始化、使用及基本操作,包括获取数组长度、遍历、填充替换元素、排序和复制等关键知识点。同时探讨了数组内存解析和默认初始化值。
摘要由CSDN通过智能技术生成

JavaSE - 数组

本节学习目标:

  • 掌握一维数组的创建和使用方法;
  • 掌握二维数组的创建和使用方法;
  • 掌握对数组的基本操作;
  • 掌握对数组的排序操作。

1. 数组概述

数组(Array),是多个相同类型的数据按一定顺序排列的集合,使用一个标识符命名,并通过索引(或下标)的方式对这些数据进行统一管理。

数组的常见概念:

  • 数组名:一个数组的标识符,通过数组名才能访问数组中的数据;
  • 索引(或下标):数组中每个数据所处的位置,通过下标才能访问数组中具体某个数据;
  • 元素:数组中数据的统称,一个数据称为一个元素
  • 数组的长度:数组中元素的个数

数组的特性:

  • 数组本身是引用数据类型,数组里面的元素可以是任何数据类型
  • 数组里面的元素是有序排列的;
  • 创建数组对象会在内存中开辟一整块连续的空间,而引用数组实际上是引用这块连续空间的首地址
  • 数组的长度一旦确定就不能更改
  • 数组内的某个元素可以通过此元素的索引(或下标)调用。数组本身是一个简单的线性序列,所以访问速度很快。

数组的类型:

  • 按维度分:一维数组、二维数组…;
  • 按元素数据类型分:基本数据类型数组(如整型数组)、引用数据类型数组(如字符串数组)。

2. 一维数组

当数组中的每个元素都只带有一个下标时,称这样的数组为一维数组

2.1 一维数组的创建和初始化

数组由于是引用数据类型,初始化需要使用new关键字。

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

int intArray[];
String[] strArray;

中括号[])指明该变量是一个数组类型变量,单个中括号表示一维数组。

初始化一维数组有两种方式:

  • 动态初始化:先使用new关键字为数组分配内存,再为数组的元素赋值:
int intArray[] = new int[4]; // 分配内存必须指定数组的长度
intArray = {
   87, 64, -12, 6847}; // 对元素赋值时,元素个数不可超过数组的长度
  • 静态初始化:使用new关键字为数组分配内存的同时为数组的元素赋值:
// 动态初始化不需指定数组长度,为多少个元素赋值,数组的长度就为多少。
String[] strArray = new String[]{
   "Java", "Hello", "World"};

数组一旦初始化完成,数组的长度就确定了。

2.2 一维数组的使用及元素的访问

数组使用索引(或下标)访问数组中的元素:

public class OneDimensionArray {
   
    public static void main(String[] args) {
   
        int[] intArray = new int[]{
   1, 2, 3, 4, 5};
        for (int index = 0; index < intArray.length; index++) {
    // 数组对象的length属性为该数组的长度
            System.out.println(intArray[index]); // 使用索引访问数组中的元素
        }
    }
}

运行结果:

1
2
3
4
5
  • 数组的索引(或下标)是从0开始的,到数组的长度-1结束,如果访问超过长度的索引,则会报错(java.lang.ArrayIndexOutOfBoundsException,数组越界异常)。

2.3 数组元素的默认初始化值

如果数组使用new关键字分配内存之后,并没有对其元素进行赋值,此时对数组进行遍历,输出它的元素的值,值为多少?

每个类型的数组都有其默认初始化值

  • 整型数组:默认值为0
  • 浮点型数组:默认值为0.0
  • 字符型数组:默认值为\u0000空字符,不是空格);
  • 布尔型数组:默认值为false
  • 引用数据类型(包括字符串):默认值为null

编写代码进行测试:

public class DefaultElement {
   
    public static void main(String[] args) {
   
        // 整型
        int[] intArray = new int[1];
        System.out.println("整型数组元素的初始化值为" + intArray[0] + ";");
        // 浮点型
        double[] doubleArray = new double[1];
        System.out.println("浮点型数组元素的初始化值为" + doubleArray[0] + ";");
        // 字符型
        char[] charArray = new char[1];
        System.out.println("字符型数组元素的初始化值为" + charArray[0] + ";");
        System.out.println("字符型数组元素的初始化值为\\u0000吗?" + (charArray[0] == 0));
        // 布尔型
        boolean[] booleanArray = new boolean[1];
        System.out.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值