Java数组

定义:用于存储一组相同数据类型的元素

一、如何声明:

int[] array = //数组的声明形式

 数组的存储形式是连续不间断的,创建数组是会开辟一个内存空间进而得到一个首地址

注意:

1.数组的索引值是从0开始到数组长度减一为止

2.数组的长度一旦声明则不能随意进行改变

二、如何初始化:

1.静态初始化-元素 索引 长度

int[] array = {2,3,4,5,6};//第一种
int[] array = new array{2,3,4,5,6};//第二种
//两种其实是同一种
//第一种只是简化了第二种
//第二种为动态初始化的静态初始化写法

注意:

1.初始化元素时内容必须与前面的数据类型一致

2.同一个数组只能发生一次静态初始化而且只能在初次声明的时候

 2.动态初始化-元素 索引 长度

int[] array = new int[5];//后面中括号里是数组的长度也就是元素的个数
array[0] = 22;
array[1] = 77;
array[2] = 11;
array[3] = 10;
array[4] = 9;

注意:

1.动态初始化是Java中标准定义数组的格式,而静态初始化是为了方便才从动态初始化简化得到的

2.初始化元素时内容必须与前面的数据类型一致

3.动态初始化的时候若没有赋值则其内容都为该数据类型的默认值,如int类型默认值为0

3.静态初始化和动态初始化在使用时的差异

        (1) 静态初始化:适合元素比较少,而且没有什么规律性

        (2) 动态初始化元素比较多,而且有一定的规律性,可以使用循环语句赋值

 三、数组元素的常规操作:

 1.取值:

int[] a = {2,3,4,8,9};
System.out.println(a);//这样得到的是数组的首地址[I@4554617c
int[] b = {6,4,8,9,2};
int x = b[0];
System.out.println(x);//6 加上索引才是值 
System.out.println(b[0]);//6 也可以直接输出b[0]的值

2.赋值:

int[] a = new a[3];//动态初始化 长度为3
System.out.println(a[0]);// 0 为int类型的默认值0
a[0] = 3;
System.out.println(a[0]);// 3 已经赋给a[0]为3

3遍历:

int[] arrays = {2,9,8,7,2};
for (int i = 0;i < arrays.length ;i++ ){
    System.out.println("====>:"+i);
    System.out.println(arrays[i]);
}

注意:

1.arrays.length获得的是arrays数组的长度

2.因为数组索引为0~arrays.length-1,所以for循环的条件要小于数组的长度或者小于等于arrays.length-1

四、数组常见的异常:

int[] arrays = {2,9,8,7,2};
System.out.println(arrays[5]);

        该程序最大索引位置为arrays[4](为什么是arrays[4]在上面已经讲过这里不在重复)而上面程序我想要获取arrays[5]的值,那么就会出现程序错误,我们也叫做异常,如下

ArrayIndexOutOfBoundsException:数组索引越界异常

产生的原因:访问的索引位置超过了数组所允许的最大索引

蓝色部分则为程序出现错误所在的行数,以便于我们进行修改

五、为什么要用数组呢?

方便于我们对于元素整体进行操作[增, 删,改,查]

六、数组的一些操作:

1.值的交换:

int[] arrays = {2,1,3,5,4,7};
for (int i = 0;i <= 4;i+=2 ){//每隔两个元素进行交换
    int temp = 0;
    temp = arrays[i];
    arrays[i] = arrays[i+1];
    arrays[i+1] = temp;
}
for (int i = 0;i < arrays.length ;i++ ){
    int a = arrays[i];
    System.out.println(a);
}

2.地址交换:

int[] a =  {3,5,4,1,2};
int[] b = {1,7,2,6,3,10,11};
//把b里存储的关于数组的地址给a
int[] c = a;//将a里存储的数组地址给c
a = b;//b的数组的地址给a
b = c;

3.数组的合并:

int[] a =  {3,4,4,1,2};
int[] b = {3,7,2,3,3,10,11};
//1.创建一个新的数组-确定新数组长度
int[] c = new int[b.length+a.length];//5+7
//2.如何将旧元素赋值到新的数组中去
for (int i = 0;i < a.length ;i++ ){
    /*
    c[0] = a[0];
    c[1] = a[1];
    c[2] = a[2];
    以此类推
    */
	c[i] = a[i];
}
for (int i = 0;i < b.length ;i++ ){
    /*
    c[5] = b[0];
    c[6] = b[1];
    c[7] = b[2];
    以此类推
    */
	c[i+5] = b[i];
}

4.数组的拆分:

int[] a = {1,3,1,4,5,6,7,8};
//创建两个新的数组
int[] b = new int[a.length / 2];
int[] c = new int[a.length - b.length];
//对新数组元素进行赋值
for (int i = 0; i < b.length ;i++ ){
    /*
    b[0] = a[0]
    b[1] = a[1]
    b[2] = a[2]
    以此类推
    */
	b[i] = a[i];
}
for (int i = 0; i < c.length ;i++ ){
    /*
    c[0] = a[4]
    c[1] = a[5]
    c[2] = a[6]
    以此类推
    */
	c[i] = a[i+b.length];
}

本人会定期发表关于Java的相关知识,如果有错误请指出,觉得好请点赞,收藏加关注,谢谢!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值