第四章Java数组总结

目录

4.1数组的概述

4.2一维数组

4.2.1创建一维数组

4.2.2初始化一维数组

4.2.3获取数组长度

 4.2.4使用一维数组

4.3二维数组 

4.3.1创建二维数组

4.3.2初始化二维数组

4.3.3使用二维数组 

4.4数组的基本操作 

4.4.1遍历数组

4.4.2填充和批量替换数组元素 

4.4.3复制数组

4.5数组的排序 

4.5.1算法:冒泡排序

4.5.2算法;选择排序 

4.5.3Arrays.Sort()方法 


4.1数组的概述

数组是具有相同数据类型的一组数据的集合。例如,球类集合——足球、篮球、羽毛球等;数组中的每个元素具有相同的数据类型,我们经常使用的数组包括一维数组和二维数组等。

4.2一维数组

一维数组实质上是一组相同类型数据的线性集合,例如学校中学生们排列的一字长队就是一个数组,每一位学生都是数组中的一个元素。

4.2.1创建一维数组

数组元素类型决定了数组的数据类型。它可以是Java中任意的数据类型,包括基本数据类型和其他引用类型。数组名字为一个合法的标识符,符号"[]"指明该变量是一个数组类型变量。单个"[]表示要创建的数组是一个一维数组。

声明一维数组有两种方式:

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

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

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

4.2.2初始化一维数组

数组可以与基本数据类型一样进行初始化操作,也就是赋初值。数组的初始化可分别初始化数组中的每个元素。数组的初始化有以下3种方式:

int a[]={1,2,3};            //第一种方式
int b[]=new int[] {4,5,6};  //第二种方式
int c[]=new int[3];        //第三种方式
c[0]=7;                    //给第一个元素赋值
c[1]=8;                    //给第二个元素赋值
c[2]=9;                    //给第三个元素赋值

4.2.3获取数组长度

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

arr.length

 4.2.4使用一维数组

例4.2        在项目中创建类GetDay,在主方法中创建int型数组,并实现将各月的天数输出。

代码如图所示:

运行结果:

4.3二维数组 

二维数组常用于表示表,表中的信息以行和列的形式表示,第一个下标代表元素所在的行,第二个下标代表元素所在的列。

4.3.1创建二维数组

二维数组可以看作是特殊的一维数组,因此,二维数组有两种声明方式:

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

声明二维数组。代码如下:

int tdarrl [] [];
char [] [] tdarr2;

同一维数组一样,二维数组在声明时也没有分配内存空间,同样要使用关键字new来分配内存,然后才可以访问每个元素。

为二维数组分配内存有两种方式:

int a [] [];
a = new int[2] [4];        //直接分配行列
int b[] [];
b = new int[2] [];         //先分配行,不分配列
b[0] = new int[2];         //给第一行分配列
b[1] = new int[2];         //给第二行分配列

4.3.2初始化二维数组

二维数组的初始化方式与一维数组类似,也有3种方式。但不同的是,二维数组有两个索引(即下标),构成由行列组成的一个矩阵。

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

代码如图所示:

4.3.3使用二维数组 

例4.4        创建一个二维数组,将古诗《春晓》的内容赋值于二维数组,然后分别用横板和竖版两种方式输出。

代码如图所示:

4.4数组的基本操作 

4.4.1遍历数组

遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现的。遍历一维数组很简单,也很好理解,下面详细介绍遍历二维数组的方法。
        遍历二维数组需使用双层for循环,通过数组的length属性可获得数组的长度。

例4.6        定义二维数组,实现将二维数组中的元素呈梯形输出。

代码如图所示:

4.4.2填充和批量替换数组元素 

数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行分配,可以起到填充和替换的效果。

1.        fill(int[] a,int value)

该方法可将指定的int值分配给int型数组的每个元素。

语法如下:

Arrays.fill(int[] a, int value)

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

代码如图所示:

 

2.        fill(int[] a,int fromlndex,int tolndex,int value)

        该方法将指定的int值分配给int型数组指定范围中的每个元素。填充的范围从索引fromIndex(包括)一直到索引tolndex(不包括)。如果fromIndex==tolndex,则填充范围为空。
语法如下:

Arrays.fill(int[]a , int fromIndex, int toIndex, int value)

4.4.3复制数组

Arrarys类的copyOf0方法与copyOfRange)方法可实现对数组的复制。copyOf)方法是复制数组至指定长度,copyOfRange)方法则将指定数组的指定长度复制到一个新数组中。
1.         copyof()方法
该方法提供了多种使用方式,用于满足不同类型数组的复制。

语法如下:

Arrays. copyof(arr,int newlength)

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

代码如图所示:

 2.         copyOfRange()方法
常用语法如下:

Arrays,copyofRange (arr,int formIndex,int toIndex)

arr:要进行复制的数组对象。
formIndex:指定开始复制数组的索引位置。formIndex必须在0至整个数组的长度之间。新数组包括索引是formlndex的元素。
toIndex:要复制范围的最后索引位置。可大于数组arr的长度。新数组不包括索引是toIndex的元素。
例4.10        创建一维数组,并将数组中索引位置是0-3之间的元素复制到新数组中,最后将新数组输出。

代码如图所示:

4.5数组的排序 

4.5.1算法:冒泡排序

冒泡排序是最常用的数组排序算法之一,它以简洁的思想与实现方法备受青睐,是初学者最先接触的一个排序算法。使用冒泡排序时,排序数组元素的过程总是小数往前放,大数往后放,类似水中气泡往上升的动作,所以称作冒泡排序。

例4.11        在项目中创建BubbleSort类,这个类的代码将实现冒泡排序的一个演示,其中排序使用的是正排序。

代码如图所示:

4.5.2算法;选择排序 

直接选择排序方法属于选择排序的一种,它的排序速度要比冒泡排序要快一些,也是常用的排序算法。

4.12        在项目中创建SelectSort类,这个类的代码将作为选择排序的一个演示,其中排序使用的是正排序。

代码如图所示:

4.5.3Arrays.Sort()方法 

2.         copyOfRange()方法
常用语法如下:

Arrays,copyofRange (arr,int formIndex,int 

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

代码如图所示:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值