Java数组Array

介绍数组:

数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

1.定义数组的格式

格式一:

数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];

//定义可以存储3个整数的数组容器,代码如下:
int[] arr = new int[3];

数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

[] : 表示数组。

数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。

new:关键字,创建数组使用的关键字。

数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

[长度]:数组的长度,表示数组容器中可以存储多少个元素。

格式二:

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};

//定义存储1,2,3,4,5整数的数组容器。
int[] arr = new int[]{1,2,3,4,5};   

格式三:

数据类型[] 数组名 = {元素1,元素2,元素3...};

//定义存储1,2,3,4,5整数的数组容器
int[] arr = {1,2,3,4,5};

2.数组的访问

索引(index):每一个存储到数组的元素都会拥有自己的索引值,从0开始一直到数组长度-1。

通过索引值可以访问到数组中的元素

提到最大数组长度有个能获取的语句【数组名.length】属性length的执行结果是数组的长度

由此可见数组的最大索引值为【数组名.length-1】

3.数组的遍历

数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。

利用for循环

public static void main(String[] args) {
int[] arr={1,2,3,4,5}
for(int i = 0;o<arr.length;i++)
System.out.println(arr[i]);
}

4.数组反转

数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1

public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
/*
首先明白最小索引值和最大索引值的概念
1为最小索引值 他的索引为0
5为最大索引值 他的索引为4
.length属性是获取数组长度,此数组长度为5所以需要-1,
*/
for(int max=arr.length-1,min=0;max>=min;min++,max--){


int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}

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


}

5 数组作为方法参数

基本数据类型能够作为方法的参数和返回值,作为引用类型的数组也是可以的。

首先需要明白一个概念,数组作为方法参数传递,传递的参数是数组的内存地址

那他存在我们五大内存里的哪里呢?当然是堆数组,为什么呢,因为他new了(参见基本格式1)

public static void main(String[] args) {
int[] arr = { 1, 3, 5, 7, 9 };
//调用方法,传递数组
printArray(arr);
}
/*
创建方法,方法接收数组类型的参数
进行数组的遍历
*/
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}

6数组作为方法返回值

数组作为方法的返回值,返回的是数组的内存地址

public static void main(String[] args) {
//调用方法,接收数组的返回值
//接收到的是数组的内存地址
int[] arr = getArray();
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
/*创建方法,返回值是数组类型
return返回数组的地址
*/
public static int[] getArray() {        //方法名为getArray
int[] arr = { 1, 3, 5, 7, 9 };
//返回数组的地址,返回到调用者
return arr;
}

【注意事项】

数组一旦指定长度,不可更改 买了一个2升的水杯,总容量就是2升,不能多也不能少。

数组其实中在堆内存当中开辟了一块儿地址。数组拥有自己的内存地址值。

方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值

数组静态初始化里面还能写变量

一个方法可以有多个参数,但是只能有0个或者1个返回值,不能有多个返回值。
如果希望一个方法当中产生了多个结果数据进行返回,怎么办?
解决方案:使用一个数组作为返回值类型即可。

数组可以作为方法的参数。
当调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值。
任何数据类型都能作为方法的参数类型,或者返回值类型。
数组作为方法的参数,传递进去的其实是数组的地址值。
数组作为方法的返回值,返回的其实也是数组的地址值。

NullPointerException 空指针异常

ArrayIndexOutOfBoundsException 数组越界异常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞎姬霸爱.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值