> 文档中心 > 【Java】(六) 数组的定义和使用

【Java】(六) 数组的定义和使用

文章目录

  • 前言
  • 一、数组的创建及初始化
    • 1.1 数组的创建
    • 1.2 数组的初始化
    • 1.3 数组的使用
    • 1.4遍历数组
  • 二 数组是引用类型
    • 2.1 基本类型变量和引用类型变量的区别
    • 2.2 认识null
  • 三 数组的应用
    • 3.1保存数据
    • 3.2 作为函数的参数
    • 3.3 作为函数的返回值
  • 四 数组的练习
    • 4.1 数组转字符串
    • 4.2 数组的拷贝
    • 4.3 查找数组中指定元素
  • 总结

前言

首先我们来提出两个问题?
1.数组是什么?
【Java】(六) 数组的定义和使用
2.为什么要使用数组?
举个简单的例子,倘若我们要统计一个班每个同学的成绩,假设班级人数为40,意味着我们要创建40个变量,由此可以发现,这30个变量都是相同类型,而在Java存在能存储多个相同类型数据的类型么?这时候我们就可以运用到数组了。


一、数组的创建及初始化

1.1 数组的创建

语法格式:
在这里插入图片描述

书写方法
【Java】(六) 数组的定义和使用


1.2 数组的初始化

数组的初始化分为动态初始化和静态初始化。
动态初始化:创建数组时,直接指定数组中元素的个数。
【Java】(六) 数组的定义和使用
静态初始化:创建数组时不直接指定数据元素个数,而是直接将具体的数据内容进行指定。
语法格式:
【Java】(六) 数组的定义和使用
【Java】(六) 数组的定义和使用
静态和动态初始化也可以分成两步写
【Java】(六) 数组的定义和使用

使用(数组对象.length)获取数组长度。
在这里插入图片描述
【注意】
1.静态初始化数组虽然没有指定数组的长度,但是编译时编译器会自动根据数组中的元素个数来确定数组的长度;
2.静态初始化时,{ }中的数据类型必须与数组的数据类型相同;


1.3 数组的使用

数组中元素访问
数组的内存是一段连续的空间,空间编号从0开始,也就是数组的起始下标从0开始,依次递增,数组中可以通过下标访问其任意位置的元素,如
在这里插入图片描述
【注意】
1.数组支持通过下标随意访问;
2.数组下标时从0开始,假设有n个数组元素,则下标为[0~n-1],包括n-1,不能越界。


1.4遍历数组

所谓遍历就是将数组中所有的元素全部访问一遍,访问指对数组中的元素进行某种操作,如打印
在这里插入图片描述
【注意】
由上述示例代码我们不难发现,每个元素的操作都是相同的,倘若是数组中的元素个数较多,单个打印会很麻烦,因此我们可以用到循环来打印,
在这里插入图片描述
也可以通过(for-each)来遍历数组
【Java】(六) 数组的定义和使用


二 数组是引用类型

2.1 基本类型变量和引用类型变量的区别

基本数据类型创建的变量,称为基本变量,该变量空间中直接存放的是其所对应的值。
引用类型创建的量,一般称为对对象的引用,其空间存储的是其对象所在的空间地址。
【Java】(六) 数组的定义和使用
在这里插入图片描述
【注意】
引用变量并不直接存储对象本身,存储的是对象在堆空间的起始地址,通过该地址,引用变量去操作对象。


2.2 认识null

null在Java中表示“空引用”,也就是一个不用指向对象的引用。
代码如下(示例):
在这里插入图片描述


三 数组的应用

3.1保存数据

在这里插入图片描述


3.2 作为函数的参数

1.参数传基本数据类型
代码示例
在这里插入图片描述
2.参数传数组类型(引用数据类型)
代码示例
在这里插入图片描述


3.3 作为函数的返回值

代码示例
在这里插入图片描述


四 数组的练习

4.1 数组转字符串

代码示例
在这里插入图片描述


4.2 数组的拷贝

四种拷贝方法
1.用copy和for循环进行拷贝
在这里插入图片描述
2.Arrays.copyOf 拷贝在这里插入图片描述3.System.arraycopy 拷贝在这里插入图片描述
4.array.clone拷贝在这里插入图片描述


4.3 查找数组中指定元素

1.顺序查找

给定一个数组,再给定一个元素,找出该元素再数组中的位置
代码示例
在这里插入图片描述
2.二分查找
代码示例
在这里插入图片描述
3.冒泡排序
给定一个数组,让数组升序排序
代码示例
在这里插入图片描述
4.数组逆序
代码示例
在这里插入图片描述
5.二维数组
本质上是一堆数组,其中的元素也是一堆数组。
基本语法
【Java】(六) 数组的定义和使用
代码示例
在这里插入图片描述


总结

本节主要介绍数组的定义和使用以及数组的拷贝和一些常见的数组练习,在定义数组时,需要注意考虑数组中的元素必须为同一类型,在访问数组时不能越界,其次,数组是一种引用类型,因此数组的内部保存的内容是数组在堆空间的首地址,null是不不指向任何对象的引用,是一个无效的内存位置,与数组0编号没有关系,最后就是数组的拷贝与一些常见的数组代码练习。