第五章总结

目录

一.一维数组

1.创建一维数组

2.初始化一维数组

3.使用一维数组

二.二维数组

1.创建二维数组

2.初始化二维数组

3.使用二维数组

三.foreach语句

四.遍历数组

五.填充替换数组元素

六.数组排序

七.复制数组

八.查询数组元素(先排序后查询)

九.冒泡排序

十.直接选择排序

十一.反转排序

一.一维数组

1.创建一维数组

(1)先声明,再用new关键字进行内存分配

声明方式:数组元素类型 数组名字[ ];

数组元素类型 [] 数组名字;

例:int[ ] a;(更常用) char b[ ];

声明数组后,还不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。在为数组分配内存空间时必须指明数组的长度。语法格式:数组名字=new 数组元素的类型[数组元素的个数];

数组名字:被连接到数组变量的名称。

数组元素的个数:指定数组中变量的个数,即数组的长度。

例:arr=new int[5];

(2)声明的同时为数组分配内存

语法:数组元素的类型 数组名=new 数组元素的类型[数组元素的个数];

例:int month[ ]=new int[12];

2.初始化一维数组

数组初始化的两种方式:int arr[]=new int[]{1,2,3,5,25};

int arr2[]={34,23,12,6};

3.使用一维数组

【例5.1】使用一维数组输出1~12月每个月份的天数

代码:

结果:

二.二维数组

1.创建二维数组

(1)先声明,再用new关键字进行内存分配

语法:数组元素的类型 数组名字[ ][ ];

数组元素的类型[ ] [ ] 数组名字;

声明二维数组: 例:int a[][];

内存分配:第一种内存分配方式是直接为每一维分配内存空间

代码:a=new int[2][4];

第二种内存分配方式是分别为每一维分配内存

代码:a=new int[2][];

a[0]=new int[2];

a[1]=new int[3];

(2)声明的同时为数组分配内存

例:int a=new int[2][4];

2.初始化二维数组

语法:type arrayname[][]={value1,value2,...,valuen};

type:数组数据类型。

arrayname:数组名称,一个合法的标识符。

value:二维数组中的各元素,都代表一个一维数组。

初始化二维数组代码例:int myarr[][]={{12,0},{45,10}};

3.使用二维数组

【例5.2】输出一个3行4列且所有元素都为0的矩阵

代码:

结果:

三.foreach语句

foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。

语法:for(元素类型 x:遍历对象obj)}

引用了x的java语句;

}

【例4.8】使用foreach语句遍历整型数组

代码:

结果:

四.遍历数组

遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现。

遍历二维数组需使用双层for循环,通过数组的length属性可获得数组的长度。

【例5.3】呈梯形输出二维数组中的元素

代码:

结果:

在遍历数组时,使用foreach语句可能会更简单。

【例5.4】使用foreach语句遍历二维数组

代码:

结果:

五.填充替换数组元素

替换数组元素:Arrays.fill(数组名,值);

替换数组部分元素(前改后不改):Arrays.fill(数组名,前索引,后索引,值);

【例5.5】使用fill()方法填充数组元素

代码:

结果:

【例5.6】使用fill()方法替换数组中的元素

代码:

结果:

六.数组排序

Arrays.sort(数组名);

【例5.7】使用sort()方法将数组排序后输出

代码:

结果:

七.复制数组

复制数组元素(空位补0溢出去掉):新数组名=Arrays.copyOf(旧数组名,新数组长度);

复制数组部分元素(前有后没有):新数组名=Arrays.copyOfRange(旧数组名,前索引,后索引);

【例5.8】复制数组

代码:

结果:

【例5.9】按照索引复制数组

代码:

结果:

八.查询数组元素(先排序后查询)

索引=Arrays.binarySearch(数组名,元素);

索引=Arrays.binarySearch(数组名,前索引,后索引,元素);(前含后不含)

【例5.10】查找元素在数组中的索引位置

代码:

结果:

【例5.11】在指定范围内查找元素在数组中的索引位置

代码:

结果:

九.冒泡排序

基本思想:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底层上升到顶部。

【例5.12】冒泡排序

代码:

结果:

十.直接选择排序

基本思想:将指定排序位置元素与其他数组元素分别对比,如果满足条件就交换元素值。注意这里与冒泡排序的区别,不是交换相邻元素,而是把满足条件的元素与指定的排序位置元素交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,直至整个数组都变成已排序好的格式。

【例5.13】直接选择排序

代码:

结果:

十一.反转排序

基本思想:把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换。

【例5.14】反转排序

代码:

结果:

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览108638 人正在系统学习中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值