数组_java

本文详细介绍了Java中的数组,包括一维数组的声明、初始化与使用,数组的引用类型特性,以及静态初始化和动态初始化的方法。此外,还讲解了数组长度的获取、元素的引用方式、遍历数组的for循环和增强for语句,以及如何使用System.arraycopy进行数组复制。同时,文章提到了二维数组的概念和声明方式,并强调了多维数组初始化的注意事项。
摘要由CSDN通过智能技术生成

数组

数组的定义和使用

  • 数组是多个相同类型数据的组合

  • 一维数组的声明方式:
    int[] a;//整型数组
    double []b;//双精度数组
    Mydata []c;//对象数组

  • 注意方括号可以写在变量名的前面,也可以写到后面

  • int []a,b,c;//表示数组a,数组b,数组c

  • int a[],b,c;//表示数组a,变量b,变量c

  • 数组初始化
    数组定义与为数组分配空间分开进行

 		int []a=new int[2];//分配空间(整型数组)
 		a[0]=3;//使用
 		a[1]=9;//使用
 		MyDate []dates=new MyDate[2];//分配空间(对象数组)
 		dates[0]=new MyDate(22,7,1964);//使用
 		dates[1]=new MyDate(1,1,2000);//使用
  • Java语言中声明数组时不能指定其长度(数组中元素个数),如
    int a[5];//非法

  • 数组是引用类型
    int []a=new int[5];
    这里的a只是一个引用,引用到一个空间里面去(有五个元素的空间(栈或者堆),并不是存在a这个地方

  • 静态初始化

    • 在定义数组的同时就为数组元素分配空间并赋值
      int[] a={2,9,8};
      或者写为 int[] a=new int[]{3,8,9};
      MyDate[] dates={new MyDate(22,7,1964),
      new MyDate(1,1,2000)};//最后可以多加一个逗号。如{3,9,8,}
  • 数组是引用类型,数组一经分配空间,其中的每个元素也被按照成员变量相同的方式隐式初始化。如:
    - [ ] 数值类型是0(因为没有赋值),引用类型是null(因为它没有引用到对象)
    int []a=new int[5];//a[0]…a[4]则是0
    MyDate []dates=new MyDate[2];//dates[0]、dates[1]则为null

  • 数组元素的引用方法

    • index为数组元素下标,可以是整型常量或者整型表达式。如a[3],b[i],c[6*i];
    • 数组元素下标从0开始;长度为n的数组合法下标取值范围:0~n-1
  • 每一个数组都有一个属性length指明它的长度,例如:a.length指明数组a的长度(元素个数);

	int ages=new int[10];
	for(int i=0;i<ages.length;i++)
	{
		System.out.println(ages[i]);
	}
  • 增强的for语句可以方便地处理数组、集合中各元素,如
 	int[] ages=new int[10];
 	for(int i:ages);
 	{
 		System.out.println(i);
 	}

这种语句是只读式语句的遍历(对每一个元素只能访问不能赋值)

  • 复制数组
    System.arraycopy提供了数组元素复制功能:
 	int[] source={1,2,3,4,5,6};//源数组
 	int[]dest={10,9,8,7,6,5,4,3,2,1};//目的数组
 	System.arraycopy(source,0,dest,0,source.lenght);//复制源数组中从下标0开始的source.length个元素到目的数组,从下标0的位置开始存储

多维数组
二维数组举例:
int [][]a={{1,2},{3,4,0,9},{5,6,7}};
二维数组是数组的数组

  		int[][] t=new int[3][];
  		t[0]=new int[2];
  		t[1]=new int[4];
  		t=2]=new int[3];

在这里插入图片描述

  • 多维数组的声明和初始化应该按从高到低的顺序进行
    int t1[][]=new int[][4];//非法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值