详述:数组

数组的定义

定义:一种数据类型,内存连续且数据类型相同

一维数组定义的方法

  1. 穷举法
int [] array = {100,200};
String [] names = new String[]{"Tom","Kate"};

此外,有一种数组的定义需要读者注意

int [] array;
array = {100,200};//不可该方式定义数组,会报错

基于上述定义方式,又另一种不会报错的解决方式

int [] array;
array = new int[] {100,200};

2.指定数组长度定义法

int [] scores = new int[120];//指定长度
scores[119]= 150;

二维数组的定义方式

二维数组的定义方式跟一维数组的定义方式大同小异

int [][] scores = new int[2][3];//{{23,23,34},{23,43,43}};

数组的遍历方式

//数组遍历
  int [] array = {100,120};
  System.out.println(array[0]);
  System.out.println(array[1]);
  //遍历方式一
  for(int i = 0;i<array.length;i++) {
   System.out.println(array[i]);//这一种数组遍历方式是最常见的
  }
  //遍历方式二
  for(int data:array) {
   System.out.println(data);//这一种数组遍历方式一定要记住,新定义的数组类型要与原数组类型相同,且两个数组之间有冒号隔开,在数组数组的时候,只需输出新的数组名,不用再输入下标
  }
  
  int [] [] scores = {{200,12,3},{123,34,32}};
  for(int i = 0;i<scores.length;i++) {
   int [] subScores = scores[i];
   for(int j = 0;j<subScores.length;j++) {
    System.out.println(subScores[j]);
   }
  }
  
  System.out.println("@@@@@@@@@@@@@@@@");
  for(int[] subScores : scores) {
   for(int score :subScores) {
    System.out.println(score);
   }
  }

值传递与地址传递

public class Test1 {
 public static void main(String[] args) {
	int ages = 12;
  	System.out.println(ages);//输出结果为12
  	t(ages);
  	System.out.println(ages);//输出结果为12
  
  	int [] scoress = {100};
  	System.out.println(scoress[0]);//输出结果为100
  	s(scoress);
  	System.out.println(scoress[0]);输出结果为0
  
 }
 public static void t(int x) {
  	x=0;
 }
 
 public static void s(int [] y) {
  	y[0]=0;
 }
}

为什么会出现以上结果的不同呢?这就跟变量储存的性质有关,ages这个变量储存的是12这个值变量,在使用t这个方法时,x这个变量被赋予0这个值,而ages的值没有发生改变,而scoress这个变量储存的是变量的地址,在使用s这个方法时,地址所指的变量被赋予了新值0,所以相应的scoress也发生了改变,所以输出的值为0。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值