JavaSE(二):数组

一、数组的基本概念及作用

1.基本概念

是一组相同数据类型元素的集合,是一个容器

2.作用 

①数组可以存储基本数据类型,也可以存储引用数据类型

②数组创建时必须指定长度,且长度不可变

③数组中每个元素空间是连续

二、数组的创建

数组声明的两种方式:(声明数组格式)

数据类型 [ ] 数组名字

例如:int [ ] a;

数据类型 数组的名字 [ ]

例如:int a [ ];

需要指定数组的长度或容量 

● 注意

在Java语言中两种声明方法没有任何区别,但是建议大家用第一种, 避免混淆a的数据类型。


● 注意

输出结果中:

直接输出a输出的是[I@1b6d3586代表数组在内存中的地址(hash值)

Arrays类,java语言中提供的用于操作数组工具类,提供排序,数组复制

Arrayrs类中的toString(a)方法把数组以字符串的形式返回,便于调试查看

每个空间会赋予默认值

整数的默认值为0

引用类型默认值都是null

boolean类型默认值都是false


三、数组的访问与迭代

1.数组元素的访问

数组名[索引]

例如:

a[0],a[1];

!!!注意

数组的索引从0开始。

索引的数据类型是整数(int) ,数组长度最大值就是int的最大值Integer.MAX-VALUE

索引最大值和数组长度始终差1

获取数组长度: 数组名.length

//数组下标越界会出现异常

2.数组迭代的两种方式

①for循环

int [ ] b1 = new int [ ]{1,2,3,4,5,6,7};

数组的迭代

for(int i =0;i<b1.length;i++){

System.out.println(b1[i]);

}

②增强for循环

int  t  声明一个临时遍历,用来接收每次循环时,从数组中取出的元素

  a     遍历的组数

int [ ] b1 = new int [ ]{1,2,3,4,5,6,7};

for(数组元素的类型 临时变量名字 :数组的名字){

 System.out.println(临时变量名字 );

}

即:

for(int x : b1)

System.out.println(x);

}

③两种迭代方式的比较

增强for循环

优点:适合挨个的遍历每一个元素,而且写法简单

缺点:不能控制某一区间的遍历

for循环

灵活的控制遍历区间

四、数组排序

1.冒泡排序

每次取出相邻的两个元素进行比较,将较大的向后移,每比较一趟可以找出一个最大值

2.选择排序

从第一个元素开始,与之后的每一个元素进行比较将较小的移到第一个位置,以此类推

未优化前:

优化后:


!!!补充

Debug模式,用来调试程序逐行运行程序

断点:需要从哪行开始调试,就在那一部设置断点

以debug模式启动

F8 step over 步调 执行一步

调试完成后 释放程序


五、二维数组

1、二维数组的声明

int [ ][ ] a;

int a2[ ][ ];

●注意:建议用第一种,不容易混淆a的数据类型 

2、二维数组的创建

定义了一个整型的二维数组 ,这个二维数组有3个一维数组,每一个一维数组包含5个元素

[ 3]:  表示二维数组的长度为3

[ 5]:  表示二维数组中,每一个一维数组的长度是5

!!!注意

输出

结果为红色标中的值

{ (0,0,0,0,0),(0,0,0,0,0),(0,0,0,0,0)}

                                                                              0   1    2   3    4 

                0                                    1                                     2

创建二维数组的三种方式:

●Int [ ][ ] a =new int[3][5];

●Int [ ][ ] a =new int[ ][ ]{{1,2,3},{1,2,3},{1,2,3}};

●Int [ ][ ] a ={{1,2,3},{1,2,3},{1,2,3}};

//[3][ ]:只声明了二维数组的长度是3,并没有声明二维数组中的一维数组的长度,也不会创建一维数组

{null,null,null}

如果要使用的话,可以对每个二维数组单独创建一维数组:

Int [ ][ ] a =new int[3][ ];

      a[0] = new int[10];

      a[1] = new int[5];

      a[2] = new int[7];

3、二维数组的遍历

 输出结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值