第四章数组

目录

4. 创建一维数组

4.1数组的概述

arr:数组名。length:数组长度属性,返回int值。例 4.1 使用length属性获取数组长度

例4. 初始化一维数组

4.2.3 获取数组长度我们初始化一维数组的时候都会在内存中分配内存空间,内存空间的大小决定了一维数组能够存储多少个元素,也就是数组长度。如果我们不知道数组是如何分配内存空间的,该如何获取数组长度呢?我们可以使用数组对象自带的length属性。

例4.2

4.3.2初始化二维数组二维数组的初始化方法与一维数组类似,也有3种方式。但不同的是,二维数组有两个索下标),构成由行列组成的一个矩阵,如图4.8所示。右索引决定列

 例4.3分别用三种方法初始化二维数组

例4.4创建一个二维数组,《春晓》,分别用横版和竖版输出

 例4.5 创建一个不规则二维数组,输出每行的元素个数及各元素的值

4.4 数组的基本操作4.4.1遍历数组

 遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现的遍历二维数组需使用双层for循环,通过数组的length属性可获得数组的长度。

例4.6定义二维数组,将二维数组呈梯形输出

例4.42填充和批量替换数组元素

Array fill(数组名,值) 

例4.7通过 fill0方法填充数组元素,最后将数组中的各个元素输出。

 例4.8通过 fill0方法替换数组元素,最后将数组中的各个元素输出。

 例4.9创建一维数组,将此数组复制得到一个长度为5的新数组,并将新数组输出

例4.10创建一维数组,并将数组中索引位置是0-3之间的元素复制到新数组中

 算法:冒泡排序

基本思想

例4.11冒泡排序方法

 算法:选择排序

基本思想

例4.12直接选择排序法

 例4.13 创建一维数组,并将排序后输出

4. 创建一维数组

数组元素类型决定了数组的数据类型。它可以是Java中任意的数据类型,包括基本数据类型和其他数组类型 []”表示要创建的数组是一个一维数组

声明一维数组有两种方式

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

声明一维数组,语法如下:

int arr[]; //声明int型数组,数组中的每个元素都是int型数值
double[] dou; //声明double型数组,数组中的每个元素都是double型数值

声明数组后,还不能访问它的任何元素,因为声明数组只是给出了数组名字和元素的数要想真正使用数组,还要为它分配内存空间。在为数组分配内存空间时必须指明数组的长现组分配内存空间的语法格式如下:

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

为数组分配内存,语法如下:
arr = new int[5]; //数组长度为5

4.1数组的概述

数组是具有相同数据类型的一组数据的集合

arr:数组名。
length:数组长度属性,返回int值。
例 4.1 使用length属性获取数组长度

 

例4. 初始化一维数组 

4.2.3 获取数组长度
我们初始化一维数组的时候都会在内存中分配内存空间,内存空间的大小决定了一维数组能够存储多少个元素,也就是数组长度。如果我们不知道数组是如何分配内存空间的,该如何获取数组长度呢?我们可以使用数组对象自带的length属性。

例4.2

二维数组 

 创建二维数组的时候,可以只声明“行”的长度,而不声明“列”的长度,例如:int a[][]= new int[2][];//可省略“列”的长度
但如果不声明“行”数量的话,就是错误的写法,例如:
int bl][] =new int[][];// 错误写法!
int c[][] = new int[][2];//错误写法!

4.3.2初始化二维数组
二维数组的初始化方法与一维数组类似,也有3种方式。但不同的是,二维数组有两个索下标),构成由行列组成的一个矩阵,如图4.8所示。右索引决定列

 例4.3分别用三种方法初始化二维数组

 

 

例4.4创建一个二维数组,《春晓》,分别用横版和竖版输出

 

 例4.5 创建一个不规则二维数组,输出每行的元素个数及各元素的值 

 

4.4 数组的基本操作
4.4.1遍历数组

 遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现的遍历二维数组需使用双层for循环,通过数组的length属性可获得数组的长度。
二维数组 a[][],a.length返回的是数组的行数,a[0].length返回的是第一行的列数量,a[1].length返回的是第二行的列数量……

同理,a[n]返回的是第n-1行的列数量,由于二维数组可能是不规则数组,所以每一行的列数量可以不相同,所以在循环遍历二维数组的时候,最好使用数组的length属性控制循序次数,而不是用其他变量。

 例4.6定义二维数组,将二维数组呈梯形输出

 

 

例4.42填充和批量替换数组元素

数组元素定义完成后,通过Arrays类的静态方法fill()来对数组进行分配,

可以起到填充合体换的效果

Array fill(数组名,值) 
 

Array fill(数组名,数组前序列号的值,数组后序列号的值)      

  //  数组前序列号的值从0开始 前变后不变

复制数组

数据类型

例4.7通过 fill0方法填充数组元素,最后将数组中的各个元素输出。
 

 

例4.8通过 fill0方法替换数组元素,最后将数组中的各个元素输出。 

 

 

 例4.9创建一维数组,将此数组复制得到一个长度为5的新数组,并将新数组输出

 

例4.10创建一维数组,并将数组中索引位置是0-3之间的元素复制到新数组中 

 

 

                                                                          

 算法:冒泡排序

排序数组元素的过程总是小数往前放,大数往后放,类似行上升的动作,所以称作冒泡排序。


基本思想

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

例4.11冒泡排序方法


 

 

 算法:选择排序
基本思想

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

例4.12直接选择排序法


 

 

 例4.13 创建一维数组,并将排序后输出

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值