Java学习5 数组

声明数组类型变量

数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型

int[] a;
double d[];
String[] args;
Person p的[];

/*注意:java语言中声明数组类型的变量时,不允许指定数组的长度(数组元素的个数)*/
int[3] a; //非法

创建并使用数组

int[] s; //局部变量s(数组对象句柄)在栈内存
s = new int[10]; //int[]对象在堆内存,每个元素初始值为0

MyDate[] m;
m = new MyDate[10]; //MyDate[]对象每个元素初始值为null

数组元素缺省初始化

数组是引用类型,它的元素相当于类的成员变量,因此数组对象一经创建,每个元素也被隐式初始化。

数组初始化

  • 动态初始化
// 基本类型
int a[];
a = new int[3];
a[0] = 3;
a[1] = 9;
a[2] = 8;
// 引用数据类型
MyDate dates[];
dates = new MyDate[3];
datas[0] = new MyDate(22,7,1964);
datas[1] = new MyDate(1,1,2000);
datas[2] = new MyDate(22,12,1964);
  • 静态初始化
// 基本类型
int a[] = {3,9,8};
// 引用数据类型
MyDate dates[] = {
   new MyDate(22,7,1964),
   new MyDate(1,1,2000),
   new MyDate(22,12,1964)
};

多维数组

// 二维数组 实际为a[3][4]
int a[][] = {{1,2},{3,4,0,9},{5,6,7}};
i、j坐标j=0j=1j=2j=3
i=012
i=13409
i=2567

  • 多维数组的声明和初始化应按高维到低维的顺序进行:
int[][] a = new int[3][4];
int[][] t = new int[3][];
int[][] b = new int[][4]; //非法

数组拷贝

java.lang.System类的arraycopy()方法提供了数组元素复制功能

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

数组排序

JDK的java.util包中定义的Arrays类提供了多种数组排序的功能

// 创建样本数组
int a[] = {6,23,45,12,-83,94,41};
// 数组排序 (内部实现采用快速排序法)
Arrays.sort(a);
// 排序后数组元素输出
for(int i=0; i<a.length; i++){
    System.out.print(a[i]+"\t");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值