数组的定义和使用

本文详细介绍了Java中的数组,包括数组的基本概念、创建、使用方法、作为方法参数和返回值的情况,以及一系列的数组操作,如转换为字符串、拷贝、查找最大值、计算平均值、排序等。此外,还探讨了数组作为引用类型在内存中的表示,以及null的概念。文章最后提及了二维数组的定义和使用。
摘要由CSDN通过智能技术生成

目录

1 数组基本用法 

1.1 什么是数组

1.2 创建数组

1.3 数组的使用

2 数组作为方法的参数

2.1基本用法

2.2 理解引用类型

2.3 认识null

2.4初识Jvm内存区域划分

3 数组作为方法的返回值

4 数组练习

4.1 数组转字符串

4.2 数组拷贝

4.3 找数组中的最大元素 

4.4 求数组中元素的平均值

4.5 查找数组中的指定元素(顺序查找)

4.6 查找数组中的指定元素(二分查找)

4.7 检查数组的有序性

4.8 数组排序(冒泡排序)

4.9 数组逆序

4.10 数组数字排列

5 二维数组


1 数组基本用法 

1.1 什么是数组

数组本质上就是让我们能 "批量" 创建相同类型的变量.

相同类型的变量组成的集合

例如

int a1=1,a2=2,a3=3;

a1,a2,a3都是int类型的,我们就可以创建一个数组保存a1,a2,a3所储存的值

int[] array={1,2,3};

注意事项: 在 Java 中, 数组中包含的变量必须是 相同类型

1.2 创建数组

数组的创建有两种方法:

静态初始化:

 数据类型[]  数组名称 =  { 初始化数据 };

或表示为 数据类型[] 数组名称=new 数据类型[]{初始化数据};

//注意:静态初始化后,数组的长度确定,同时方括号不可以填值。

动态初始化:

数据类型[] 数组名称=new 数据类型[数组的长度];

 代码示范:

int[ ] array={1,2,3};

int[ ]  array=new int[ ]{1,2,3};

//必须在声明的时候让同时初始化

====================

int[] array=new int[3];//创建一个长度为3的int数组

//上明是声明,初始化如下

array[0]=1; array[1]=2; array[2]=3;

//数组的下标从0开始

 注意事项: 静态初始化的时候, 数组元素个数和初始化数据的格式是一致的.

1.3 数组的使用

代码示例: 获取长度 & 访问元素

int[] arr = {1, 2, 3};

// 获取数组长度

System.out.println("length: " + arr.length); // 执行结果: 3

// 访问数组中的元素

System.out.println(arr[1]); // 执行结果: 2

System.out.println(arr[0]); // 执行结果: 1

arr[2] = 100; System.out.println(arr[2]); // 执行结果: 100

 注意事项

1. 使用 arr.length 能够获取到数组的长度. . 这个操作为成员访问操作符. 后面在面向对象中会经常用到.

2. 使用 [ ] 按下标取数组元素. 需要注意, 下标从 0 开始计数

3. 使用 [ ] 操作既能读取数据, 也能修改数据.

4. 下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常

 代码示例: 遍历数组

所谓 "遍历" 是指将数组中的所有元素都访问一遍, 不重不漏. 通常需要搭配循环语句.

int[] arr = {1, 2, 3};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}

// 执行结果

1

2

3

 代码示例: 使用 for-each 遍历数组

int[] arr = {1, 2, 3};

for (int x : arr) {

        System.out.println(x);

}

// 执行结果

1

2

3

for-each 是 for 循环的另外一种使用方式. 能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错

用for-each循环数组:

基本结构:

for(数据类型 数据名: 数组名){

        执行语句;

}

2 数组作为方法的参数

2.1基本用法

 代码示例: 打印数组内容

public static void main(String[] args) {
int[] arr = {1, 2, 3};
printArray(arr);
}
public static void printArray(int[] a) {
for (int x : a) {
System.out.println(x);
}
}

 // 执行结果

1

2

3

 在这个代码中

>int[] a 是函数的形参, int[] arr 是函数实参.

>如果需要获取到数组长度, 同样可以使用 a.length

2.2 理解引用类型

public class TestDemo {
    public static void main(String[] args) {
        int[] array={1,2,3,4};
        System.out.println(array);
    }
}

 通过运行发现,array存储的是一个地址,"["表示是一个一维数组,“I”则表示int类型,@后面的就是这个数组的具体位置值。通过这个例子可知,数组是引用数据类型,其存储的是一个地址。

 代码示例 参数传内置类型

public static void main(String[] args) {
int num = 0;
func(num);
System.out.println("num = " + num);
}
public static void func(int x) {
x = 10;
System.out.println("x = " + x);
}

 // 执行结果

x = 10

num = 0

 func方法内关于x的值得修改不会影响主方法中num的值,这是值传递。值传递就是num把自己的之传给func方法做形参,但是方法中x的值的改变并不会对原本的num有任何影响。

 代码示例 参数传数组类型

public static void main(String[] args) {
int[] arr = {1, 2, 3};
func(arr);
System.out.println("arr[0] = " + arr[0]);
}
public static void func(int[] a) {
a[0] =
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值