数组(遍历)

数组是一种用于储存多个相同类型数据的存储模型

数组定义格式

格式一:数据类型 [ ] 变量名
例如 : int [ ] arr
定义了一个int类型的数组,数组名为arr

格式二: 数据类型 变量名[ ]
例如 : int arr [ ]
定义了一个int类型的变量,变量名是arr数组

数组初始化:

1.动态初始化

初始化时只规定数组长度,由系统为数组分配初始值

数据类型 [ ] 变量名 = new 数据类型 [ 数组长度]
int [ ] arr = new int [3]
左边:

int :说明数组中的元素类型为int类型
[ ]:说明这是一个数组
arr:数组名称
右边:
new:为数组申请内存空间
int :说明数组中的元素类型为int类型
[ ]:说明这是一个数组
3:说明内存长度为3,其实就是数组中的元素个数

2.静态初始化

初始化时指定每个数组元素的初始值,由系统决定数组长度

格式: 数据类型 [ ] 变量名 = new 数据类型[ ] { 数据1,数据2,数据3,…};
int [ ] arr= new int [ ] {1,2,3};
简化格式: 数据类型 [ ] 变量名 = { 数据1,数据2,数据3,…};
int [ ] arr= {1,2,3};

    int  []  arr = {1,2,3,5,6,};
	    System.out.println(arr[0]);
	    System.out.println(arr[1]);
	    arr[0]=111;
	    arr[1]=222;
	    System.out.println(arr[0]);
	    System.out.println(arr[1]);

输出结果:1
2
[I1b5
111
222

JAVA中 内存分配

请添加图片描述
(001为数组的地址值(这里的001是自己随便给的))

单个数组内存图请添加图片描述

 int  [ ]  arr = new  int   [3];
	    arr[0]=100;
	    arr[2]=200;
	    System.out.println(arr[0]);
	    System.out.println(arr[1]);
	    System.out.println(arr[2]);
	    ```
	    执行结果:
	    100
	    0
	    200

多个数组指向相同内存图 (数组的地址相同)

请添加图片描述

int  []  arr = new  int   [2];
	    System.out.println(arr[0]);
	    System.out.println(arr[1]);
	    arr[0]=111;
	    arr[1]=222;
	    System.out.println(arr[0]);
	    System.out.println(arr[1]);
	    int []arr2 =arr;
	   
	    arr[1]=200;
	    System.out.println(arr);
	    System.out.println(arr2);
	    System.out.println(arr2[0]);
	    System.out.println(arr2[1]);

实验结果:
0
0
111
222
[I1b5
[I1b5
111
200

数组操作常见小问题

1.索引越界

访问了数组中不存在的索引对应元素,造成索引越界问题
出现异常

ArrayIndexOutOfBoundsException

2.空指针异常

访问的数组已经不再指向堆内存的数据,造成空指针异常

null:空值,引用数据类型的默认值,表示不指向任何有效对象
异常:

NullPointerException

遍历

输出数组中所有数据

.length 获取数组中元素个数

int [ ] arr= new int {1,2,3};
	    **for (int x=0;x<arr.length;x++)** 
	    {
	    System.out.println(arr[x]);
	    }

最大值

获取数组中的最大值:

int arr[]=new int [] {1,34,75,84,12,3543,64462,6436574,9777777};
		int max=arr[0];
		for(int x=1;x<arr.length;x++) {
		if( arr[x]>max)
		{
			max=arr[x];
			}
		}
	System.out.println(max);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值