10.一维数组

1.数组的基本概念

1.1 定义

数组:存储数据的连续空间表示,数组中可以存储多个相同类型的数据。

数组也是一个变量,内存会给数组分配一段连续的空间,每个空间内存储一个数据

数据1数据2数据3数据4

1.2 组成部分

1.标识符:即数组名,命名原则和变量名一样;

2.元素:即数组中的存储的每一个数据;

3.元素下标:数组在内存中是一段连续的空间,从0开始给空间编号,称之为索引,通过索引获取相应的元素

4.元素类型:描述的是数组中的元素类型,都是相同类型的

1.3 数组的声明方法及使用

1.3.1 声明数组

数据类型[ ] 数组名;或者:数据类型  数组名[ ];如:int[ ]  nums;

1.3.2 分配空间

即定义数组的长度:数组名=new 数据类型[数组长度];如:nums=new int[5];

两步可以合并写(常见写法),即:

数据类型[ ]  数组名=new 数据类型[数组长度];

如:int[ ]  nums=new int[5];//声明了一个长度为5的int类型的数组

1.3.3 赋值

数组名[元素下标]=数据;如:nums[0]=1;nums[2]=2;

注:

1.元素下标从0开始,最大值=数组长度-1。如果等于数组长度或者超过数组长度,则会出现数组下标越界异常。

2.整数型的数组,数组元素默认值是0;

3.浮点型的数组,数组元素默认值是0.0;

4.char型的数组,数组元素默认值是空格;

5.Boolean型的数组,数组元素默认值是false;

6.String型的数组,数组元素默认值是null。

声明数组、分配空间和赋值可以合并写

数据类型[ ]  数组名=new 数据类型[ ] {数据1,数据2,数据3,。。。,数据n};

注:{}前的[ ]中不能写数组长度,数组长度由{}中的数据个数决定

简写(常见写法):

数据类型[ ]  数组名= {数据1,数据2,数据3,。。。,数据n};

获取数组长度方法:数组名.length;

1.3.4 操作数据

通过操作数组名[元素下标]来进行

总结:数组的声明方法常用的有两种,即

数据类型[ ]  数组名=new 数据类型[数组长度];

数据类型[ ]  数组名= {数据1,数据2,数据3,。。。,数据n};

2.遍历数组

2.1 普通for循环

遍历数组的意思是:将数组元素按照下标依次输出

2.1 增强for循环

语法结构

for(数据类型 变量名:数组名或集合名){
     
      对变量进行操作的代码块;
}

 执行规律:将数组或者集合中的元素按顺序依次存储到变量中,然后操作这个变量就等同于操作数组或集合中的数据。

 注意:增强for循环的执行效率要比普通for循环高

案例

3. 经典应用

3.1 获取数组中的最大值或者最小值

获取最大值思想方法:

1.先假定数组中的第一个元素是最大值;

2.从第二个元素开始依次和这个最大值进行比较,如果比最大值还大,就把这个元素替换为最大值

            //获取数组中的最大值
			int[] nums={21,24,10,23,45};
			//1.假定第一个元素为最大值
			int max=nums[0];
			//2.将数组的元素依次和最大值比较,若比最大值还大,就将该元素赋值给最大值
			for (int i = 0; i < nums.length; i++) {
				if(nums[i]>max){
					max=nums[i];
				}
			}
			System.out.println("最大值是"+max);

获取最小值思想与最大值一样

            //获取数组中的最小值
			int min=nums[0];
			for (int i = 0; i < nums.length; i++) {
				if(nums[i]<min){
					min=nums[i];
				}
			}
			System.out.println("最小值是"+min);

3.2 删除数组中的一个元素

需求:删除数组中的某个元素,删除完这个元素之后,后面的元素依次往前移动一位

思想方法:

1.输入想要删除的元素的下标;

2.根据删除下标做判断,若是删除最后一个元素,直接将其赋值为相应的数组类型的默认值;若删除的不是最后一个元素,从删除位置的下标开始,依次将后一个元素向前移动一位;

3.最后一位赋值为该数组类型对应的默认值。

       //删除数组中的某个元素,删除完这个元素之后,后面的元素依次往前移动一位
		Scanner sc=new Scanner(System.in);
		String[] strs={"hello", "java", "html", "css", "JavaScript"};

		//第一步,输入你想删除的元素的下标
		System.out.println("输入你想删除的元素的下标(0到4):");
		int index=sc.nextInt();

		//第二步,判断,如果删除元素下标为4的元素,将其赋值为数组String[]的默认值null
		if(index==strs.length-1){
			strs[strs.length-1]=null;
		}
		//如果删除的元素的下标是0到3,从删除的下标开始,将后面一个元素依次往前移动一位
		for(int i=index;i<strs.length-1;i++){
			strs[i]=strs[i+1];
		}

		//第三步,移动完后,最后一个元素赋值为null
		strs[strs.length-1]=null;

		//第四步,遍历数组
		for (String string : strs) {
			System.out.print(string+" ");
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值