数组初步学习

数组学习

1. 数组【重点】
1.1 生活中的数组
超市
	商品货物的存放,是不是分门别类???
	分门别类有什么好处??? 
		便于管理,便于查找
	理念 【归纳总结】

图书馆:
	1. 社科类,文学类,管理类,小说类,历史类,语言类
	2. 相同的书籍会存放于一个书架上 【同一个位置】
	3. 每一本书都要有一个唯一的编号 【同样的称呼】 W-101
	4. 同一本有10本,都会有一个唯一的索引 
		W-101-01 ~ W-101-10 【唯一索引】
	
通过图书馆我们可以概括
	1. 存储位置一致,并且连续
	2. 有统一的称呼,方便管理
	3. 存在唯一索引,具有一定的唯一性
1.2 开发中的实际情况
开发中一定存在对于大量相同数据处理的过程!!!

如果按照单一变量的定义方式,会导致
	1. 代码冗余!!!
	2. 代码维护性极差!!!
	3. 代码可操作性极差!!!
	4. 代码阅读性极差!!!

	这里可以模仿生活中的案例,图书馆,超市,把这些同一个数据类型的数据,存放在一起,方便管理和使用
	引入数组使用的场景和概念!!!
1.3 Java中创建数组的方式
案例
    int[] array = new int[10];
/*
赋值号左侧:
	int:
		告知编译器,这里创建定义的是一个int类型数组,有且只能保存int类型数据,保
		证数据类型一致化
	[]:
		1. 告知编译器,当前定义的数据类型是一个数组类型
		2. 数组名 array是一个【引用数据类型】
	array:
		1. 这里是一个数组名,操作数组的核心数据!!!就是一个变量名
		2. 数组名 array是一个【引用数据类型】

赋值号右侧:
	new:
		new关键字需要在计算机中申请【连续内存空间】,这块区域在内存的【堆区】
		【生活案例】这里就好比,顾客找仓库管理员申请货架,管理员一定是给你一个整
		个连续区域给你使用
	int:
		前后呼应,告知编译器这里能够存储的数据类型是int类型,其他类型都不可以,要
		求数据类型一致化
	[10]:
		告知编译器,当前数组的【容量 Capacity】是多少,这里是10,也就是说当前数
		组中有且只能保存10个int类型数据
*/
【补充知识点 引用数据类型 难点】
	引用在生活中很常见,比如 文献中引用,文言文注解引用,广告角标上标引用,这些目的,引入其他的内容,其他的文献,其他的操作... 
	引用存在的一定的【指向性!!!】
	
	取快递
	快递小哥如何知道你的地址在哪里???
	根据快递单上的地址,联系方式和姓名来找到你的位置。
	快递单这里也存在一定的【指向性!!!】
	
	快递单中存有一个非常重要的数据【地址】!!!

	开发中的【引用数据类型】,实际上是一个指向其他内存空间的一个数据类型。引用数据类型的变量中存储的内容是其他内存空间的【首地址】。
	当CPU访问到【引用数据类型】变量时,会得到其存储的地址,然后直接跳转到对应的内存空间中,执行代码,获取数据,操作内容...
1.4 定义数组和使用
定义数组:
	int[] array = new int[10];

需要操作数组中哪一个元素,这里需要使用数组的【下标】
    计算机内数据的开头都是从0开始,数组容量为10的情况
   	有效下标的范围
    	0 ~ 9
    	0 ~ 数组容量 Capacity - 1

操作格式:
	数组名[有效下标] 
/* 演示数组的定义和使用 */
class Demo2 {
	public static void main(String[] args) {
		/* 这里定义一个int类型的数组,数组的容量为10 */
		int[] array = new int[10];
		
		/*
		给数组中下标为0的元素赋值
		格式: 数组名[有效下标]
		*/
		array[0] = 10;
		
		/*
		给数组中下标为5的元素赋值
		*/
		array[5] = 20;
		
		/*
		给数组下标为10的元素赋值30
		10 已经超出了有效下标范围 0 ~ 9
		
		array[10] = 30;
		*/
		/*
		Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
			at Demo2.main(Demo2.java:22)	
		ArrayIndexOutOfBoundsException	数组下标越界异常
		*/
		
		/*
		给数组中下标为-1的元素赋值为20
		-1 已经超出了有效下标范围 0 ~ 9
		*/
		// array[-1] = 20;
		/*
		java.lang.ArrayIndexOutOfBoundsException: -1
		*/
		
		/*
		取出数组中下标为0和下标为5的元素内容
		*/
		System.out.println("array[0] : " + array[0]);
		System.out.println("array[5] : " + array[5]);
		// System.out.println("array[4] : " + array[4]);
		
	}
}
1.6 数组和循环不得不说的秘密
数组的下标是不是一个等差数列?
	0 ~ 数组容量 - 1

这里和循环存在一定的关系!!!
数组关系极为密切是for循环!!!
class Demo3 {
	public static void main(String[] args) {
		/* 定义一个int类型数组 容量为10 */
		int[] arr = new int[10];
		
		/*
		数组名.length 
			获取当前数组的【容量 Capacity】,获取数组的【属性】
		*/
		for (int i = 0; i < arr.length; i++) {
			// 给数组中每一个元素赋值操作 
			arr[i] = i + 1;
		}
		
        // 利用循环展示数据
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}
t i = 0; i < arr.length; i++) {
			// 给数组中每一个元素赋值操作 
			arr[i] = i + 1;
		}
		
        // 利用循环展示数据
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值