APP下载

Java阵列的建立及使用

消息来源:baojiabao.com 作者: 发布时间:2024-05-18

报价宝综合消息Java阵列的建立及使用

阵列是具有相同资料型别的一组资料的集合,作为物件允许使用new关键字进行内存分配。首先先来熟悉一下一维阵列的建立和使用。

宣告一维阵列,有下列两种方式:

阵列元素型别 阵列名字;

阵列元素型别 阵列名字;

阵列元素型别据定了阵列的资料型别,它可以是java中任意的资料型别,宣告一维阵列,如:int arr; String str; int arr是宣告int型阵列,阵列中的每个元素都是int型数值,同理,str阵列中的每个元素都是String型别。

注:Java语言中宣告阵列时不能指定其长度(阵列中元素的个数),这是因为阵列是一种引用型别的变数,因此使用它定义一个变数时,仅仅表示定义了一个引用变数(也就是定一个了一个指标),这个引用变数还未指向任何有效的内存,所以定义阵列时不能指定阵列的长度。而且由于定义阵列仅仅只是定一个引用变数,并未指向任何有效的内存空间,所以还没有内存空间来储存阵列元素,因此这个阵列也不能使用,只有在阵列进行初始化后才可以使用。

为阵列分配内存空间的语法格式如下:

阵列名字=new 阵列元素的型别[阵列元素的个数];

例如,arr=new int[5];也可以在宣告阵列的同时为阵列分配内存,例如:int arr=new int[5];

附:一旦使用new关键字为阵列分配了内存空间,每个内存空间储存的内容就是阵列元素的值,也就是阵列元素就有了初始值,即使这个内存空间储存的内容是空,这个空也是一个值null。也就是说不可能只分配内容空间而不赋初始值,即使自己在建立阵列物件(分配内容空间)时没有指定初始值,系统也会自动为其分配。

附:诸如基础资料型别的包装类,其预设的初始化值均为null,因为基础资料型别的包装类建立的阵列属于引用阵列(物件阵列),物件阵列预设的初始化值都是null。

理解了一维阵列的宣告和建立,二维阵列的宣告和建立大同小异。二维阵列的宣告,int arr;二维阵列常用于表示表,第一个下标表示行,第二个下标表示列。直接为二维阵列分配内存,方法如下:a=new int[2][4];

为阵列分配内存之后,就要学习如何初始化阵列了。一维阵列的初始化形式有两种:

int arr=new int{1,2,3,4};

或 int arr={1,2,3,4};二维阵列的初试化方法: int myarr={{12,2},{43,45}}; 注意,写成intmyarr={12,2,43,45}是错误的。

接下来,通过两段小的程式码来解释如何使用一维阵列和二维阵列。

第一个例子是使用一维阵列将1~12月各月的天数输出。程式码如下:

public class shuZu{ public static void main(String args){ int day=new int{31,28,31,30,31,30,31,31,30,31,30,31}; for (int i=0;i第二个例子是使用二维阵列将阵列中的元素输出。程式码如下:public class shuZu{ public static void main(String args){ int arr=new int{{1},{2,3},{4,5,6}}; for(int i=0;i简单介绍了一下阵列的基本内容,接下来讲解一下经典的阵列气泡排序算法。

气泡排序原理:相邻的两位数做比较,1和2比较 2和3比较 3和4比较 4和5比较,这样依次比较,如果前面的数小于后面的,不做操作,如果前面的数大于后面的数则调换两个数字的位置,列1>2 则数字顺序为2 1(注:此时的1 2 3 4 5代表索引而不是阵列),所以一层循环能挑出一个当前阵列参与比较数字中的最大的数字,并将其排到阵列的最末尾。

但是一层循环根本不够用,只能挑选出一个最大数,阵列中其他的数字还没有正确排序。

这里遵循一个原理就是数组里面有length个数字,要进行length-1次循环。至于为什么要this.length-i,是因为第一次比较7个数字,第二个只要比较前6个就行了,第7个肯定是最大的了。这里要着重强调为什么会有2个for循环,为什么要用this.length-i。

下面用一个列子来做详细的说明:

var array = [8,7,9,2,3,5,6,1]; var temp = 0; function sort(arr){ for (var i = 0; i arr[j + 1]){ temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } } console.log(\'before: \' + array); //输出[8,7,9,2,3,5,6,1] sort(array); console.log(\' after: \' + array); //输出[1,2,3,5,6,7,8,9]

阵列的内容就介绍到这里了,大家可以自己动手实现一下,多多练习。

2019-12-28 17:52:00

相关文章