java day05 笔记

主要内容
1,数组的概述
2,数组的初始化
3,数组中出现的两个异常
4,数组的常用操作

数组的概述
1,数组:用于储存相同数据类型数据的一个容器。
2,数组出现的原因,没有数组的情况:当有多个变量都要进行操作时,需要声明大量的变量,大量的变量没有变量名称的规律或者关系,统一操作时候,只能单独操作。
有数组的情况,相当于一次性声明了指定数量的变量,这些变量都在内存空间中相邻,将来可以将数据存储到数组中,不需要记忆每个变量的名称,只需要记录数组的名称,以及元素在数组中的位置即可,可以通过序号操作每个元素,可以通过循环来操作有规律的序号。
3,使用所有容器的原因;
希望通过容器中的序号,寻找标记容器中的每个元素,标记又是有规律的
通过有规律的,容易记忆的数据,寻找不容易记忆的没有规律的数据

数组的声明
1,格式:
数据类型[] 数组名称 =new 数据类型[数组元素的个数];
2解释
数据类型:
数组中元素的数据类型
[]:
表示声明的是一个一维数组
数组的名称:
存储这个数组的数据地址;
new:
在堆内存中间中,开辟一段空间
数据类型:
也是数组中元素的数据类型,和前面的数据类型必须保持一致
数组元素的个数:
数组的空间大小,可以存放多少个指定类型的数据,数组的容积

打印内容解释
1、打印内容:
[I@15db9742
2、解释:
[ :表示是一个一维数组
I :表示数组中存储的是int类型的数据
@ :没有特殊含义,只是一个分隔符
15db9742
该数组,通过内存地址,计算出来的一个数字,哈希码值,转成十六进制
3、作用:
表示了数组的类型、元素的类型
使用单个数字表达整个数组
简称“[I@15db9742”为地址值

数组的初始化
1,初始化
让变量成为一个可以使用的状态,就是初始化
给变量分配的内存空间,就是赋值
2,数组初始化
给数组分配内存空间,并且将空间中的变量赋值
3,分类
动态初始化:在运行过程中,逐一进行赋值
静态初始化:在编写代码时,在声明数组时,直接统一进行赋值

动态初始化
1,格式和声明的格式相同
数据类型[] 数组名称 = new 数据类型[数组元素的个数]
2,效果
直接分配了指定大小的内存空间
将数组中的所有元素,都分配默认值
3,数组元素的获取和修改
1,获取:数组名称[要获取的元素的索引]
索引:某个元素在数组中的相堆位置,0^数组长度-1
2,修改:数组名称[ 要修改的元素索引]=修改后的值

静态初始化
1,格式:
数据类型[] 数组名称 =new 数据类型 []{元素值罗列}
2,注意事宜
1,在方括号中,不要写元素个数
2,有一个简写的格式;
数据类型[]数组名称={元素值的罗列};
简写格式不能分两行写,数组的声明,和数组的初始化不能写在两行

数组中出现的两个异常
异常
1,在程序过程中,出现了没有意思的情况,列外情况
2,通过异常的方式,将异常有关的所有信息封装在一个对象中,只要拿到这个异常对象,就知道有关异常的所有信息
3,异常通常是通过抛出的方式来表现
4,经常出现的两个异常为,数组索引越界异常,空指针异常

数组的常用操作
1.,遍历
将数组中的每个元素都获取一遍
通过打印的方式,表示确实获取到了这个元素
2,方式
每个元素都有索引,索引又有规律的
可以通过循环获取索引的索引,在通过索引找到对应元素
3,使用的方式
1,数组名称.length,获取到数组的长度,获取到了索引的范围
2,数组的名称[索引],获取对应的元素

获取最值
1,获取最大值,或者是最少值
2,方式
1,声明一个变量(申请一块空间),存储当中最大的元素
2,让后边的元素依次和最大的元素比较,如果比这个最大元素还大,将当前元素替换掉最大元素。

class 演示最大值获取{
    public static void main(String[]args){
        int []arr={22,33,11,-1,23,54,1};  //创建数组
        int a=arr[0];  //设置这个数组里面第一个值
        for (int i=1;i<arr.length;i++){  //循环从1开始
            if(arr[i]>a){  //让数组中的0位与后面数组中的值依次比较
                a=arr[i];  //若第二个数大于第一个数,则把a赋值成第二个数
                }
            }
         System.out.println(a);
        }
                
        

数组元素的交换
1,指定两个索引元素进行位置交换
2,声明第三方变量,备份第一个变量中的值,交换

class 数组元素交换演示{
    public static void main(Sting[]args){
        int []arr={22,33,11,-1,23,54,1};  //创建数组
        int a=arr[1];
        int arr[1]=arr[4];
        int arr[4]=a;
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
            }
        }

数组的反转
1.第一个元素变成最后一个,第二个变成到倒数第二个
2,在每次获得对称位置的索引,(一个往前,一个往后),交换对称位置的元素

class 数组反转{
    public static void main(String[]args){
		 int []arr={22,33,11,-1,23,54,1};
		 int a=0;
		 for (int i=0;i<arr.length;i++){
			 if(i<arr.length-i){//避免赋值覆盖
				 a=arr[i];
				 arr[i]=arr[arr.length-i-1];
				 arr[arr.length-i-1]=a;
			 }
			 System.out.print(arr[i]+" ");
		 }
	}
}
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值