数组定义、遍历

只要往前走,不嫌步子小。今天来复习数组知识。

1 数组定义

1.1 数组概念引入

案例分析(容器):

        现在某班级学委需要统计本班学生的考试情况,如班级平均分、最高分、单人各科及格情况等。然而本班有40人,如果用普通的方法统计的话,需要在程序中声明40个变量来记录各个学生的成绩,然后进行操作,很明显能感觉到这样做很麻烦,而且错误率也很高(基数大)。             

        所以我们引入了数组的的概念,将数组作为一个容器,把所有数据全部存储到这个容器中,进行统一操作。

1.2 数组概述   

         数组就是用来存储固定长度数据的容器,确保多个数据的数据类型要一致。

        数组Array,标志是[ ] ,用于储存多个相同类型数据的集合想要获取数组中的元素值,可以通过脚标(下标)来获取,数组下标是从0开始的,下标的最大值是数组的长度减1。

1.3 创建数组(初始化) 

        (声明:这里以 int 为整型数据类型,以 arr 为数组名来演示)

        数组创建方式一般分为 动态初始化(指定长度) 静态初始化(指定内容) 两种。


方式一:动态初始化     

  • 说明:声明数组时指定元素个数,之后用时在进行赋值。     
  • 格式:  

数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[数组长度];                             

数组存储的数据类型 数组名字[ ] = new 数组存储的数据类型[数组长度];                            

  • 举例:可以存储5个整数的数组,代码如下。  
int[] arr = new int[5];  
int   arr[] = new int[5];
// 可以拆分定义 
int[] arr;
arr = new int[5];

方式二:静态初始化

  •  说明:声明数组名开辟空间,并且赋值
  •  格式:

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};

  • 举例:可以存储5个整数的数组,代码如下。
int[] arr = new int[]{1,2,3,4,5}; 
// 可以拆分定义
int[] arr;
arr = new int[]{1,2,3,4,5};

方式三:静态初始化省略格式

  • 说明:声明数组名,并赋值
  • 格式:

数据类型[] 数组名 = {元素1,元素2,元素3…};

  • 举例:可以存储5个整数的数组,代码如下。
int[] arr = {1,2,3,4,5};
//注:这种方式 不支持拆分定义

1.4 创建数组过程分析

思考:程序创建数组 int[] a = new int[5]; 时发生了什么? 

  1. 在内存中开辟连续的空间,用来存放数据,长度是5
  2. 给数组完成初始化过程,给每个元素赋予默认值,int类型默认值是0
  3. 数组完成初始化会分配一个唯一的地址值
  4. 把唯一的地址值交给引用类型的变量a去保存

 数组名是个引用类型的变量,它保存着的是数组的地址,不是数组中的数据。

1.5 数组的长度 

数组的长度用 length 属性来表示。
数组的长度允许为0,并且数组一旦创建,长度不可改变。

2. 数组的遍历

2.1 遍历

        从头到尾,依次访问数组每一个位置,获取每一个位置的元素。

public static void main(String[] args) {
	 int[] arr = { 1, 2, 3, 4, 5 }; 
     //数组下标从 0 开始,n-1 结束
	 System.out.println(arr[0]); 
	 System.out.println(arr[1]); 
	 System.out.println(arr[2]); 
	 System.out.println(arr[3]); 
	 System.out.println(arr[4]);
 } 

        以上的代码也可以将数组中每个元素全部遍历出来,但是如果数组元素非常多,不仅写的麻烦而且看得也麻烦,所以这种写法肯定不行,因此我们需要改造成循环的写法。数组的索引是 0 到 lenght-1 ,可以作为循环的条件出现。   

2.2 for循环

开始:开始下标0    结束:结束下标length-1    如何变化:++

public static void main(String[] args) { 
    int[] arr = { 1, 2, 3, 4, 5 }; 
    //遍历直到 length-1 结束
    //所以 i<=arr.leng.th-1 或 i<arr.length 都可以
    for (int i = 0; i < arr.length; i++) { 
    System.out.println(arr[i]); 
    }
}

        相信大家也知道,普通for循环有一点局限性,那就是使用时需要提前知道结束条件。这在没有明确的结束条件的时候,就让大家有点无从下手,所以就出现了 高效for循环

2.3 foreach遍历方式

foreach遍历,又叫高效for循环 / 增强for循环。思想:从头到尾依次遍历,直到没有元素为止。           

格式:for ( 数据类型 循环变量i : 需要遍历的数据 ){ 方法体 }

public static void main(String[] args) { 
    int[] arr = { 1, 2, 3, 4, 5 }; 
    for (int i : arr) { 
    System.out.println(i); 
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值