数组的定义与使用

一、数组基本用法

1.数组的意义

数组就是让我们能 “批量” 创建相同类型的变量。
注意:在java中数组中包含的变量必须是相同类型。

2.创建数组

基本语法如下:

//动态初始化
数据类型 []数据名称 = new 数据类型 [长度] {初始化数据}//静态初始化
数据类型 []数组名称={初始化数据}

代码如下:

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

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

3.数组的使用

(1)使用[ ],按下标取数组元素,下标从0开始。
(2)使用[ ]既能读取数据也能修改数据。
(3)下标访问的有效范围为[0,length)
(4)arr.length是用来计算数组arr的长度的,.这个操作符为成员引用操作符。
代码示例如下:

int []a=new int[5]{1,2,3,4,5};
System.out.println(a.length);
//执行结果为5
System.out.println(a[0]);  //1
System.out.println(a[1]);  //2
a[4]=10;
System.out.println(a[4]);  //10

遍历数组:将数组中的元素都遍历一遍,“不重不漏”。我们常用的方法是利用循环。代码示例:

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(intx:arr){
System.out.println(x);
}
//运行结果
//1
//2
//3

二、数组作为方法的参数

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 [ ]arr是函数的实参,int [ ]a是函数的形参。

2.引用类型

1.对比参数传内置类型与参数传数组类型
(1)参数传内置类型代码示例如下:

public static void main(String[] args){
int num=0;
func(num);
System.out.println("num="+num);
}
public static void func(int a){
a=10;
System.out.println("a="+a);
}
//运行结果
//num=0;
//a=10;

我们发现, 修改形参 x 的值, 不影响实参的 num 值。
(2)参数传数组类型代码如下:

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]=10;
	System.out.println("a[0]="+a[0]);
}
//执行结果
//arr[0]=10;
//a[0]=10;

我们发现, 在函数内部修改数组内容, 函数外部也发生改变. 此时数组名 arr 是一个 “引用” 。当传参的时候, 是按照引用传参。

总结: 所谓的 “引用” 本质上只是存了一个地址。Java 将数组设定成引用类型, 这样的话后续进行数组参数传参, 其实只 是将数组的地址传入到函数形参中。 这样可以避免对整个数组的拷贝。

三、数组作为方法的返回值

写一个方法,将数组中的每个元素都+2,代码如下图所示:

class Test{
public static void main(String[] args){
	int [] a={1,2,3};
	int [] output=transform(a);
	printArray(output);//3 5 7
	printArray(a);//1 2 3
}
public static void printArray(int [] x){
	for(int v:x){
		System.out.println(x);
	}
}
public static void transform(int [] x){
	int []ret=new int[x.length];
	for(int i=0;i<x.length;i++){
		ret[i]=x[i]+2;
		return ret;
		}
	}
}

在此代码中,ret这个数组就作为transform的返回值。并且在这个transform的方法中创建了新的数组,就不会破坏原来的数组了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值