Java教程

Java中的数组

本文主要是介绍Java中的数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

        数组是一组具有相同类型的元素的集合。

一、数组的定义

int[] a  表示定义一个a,类型是存在int类型元素的数组,大小不确定。

int[] a = {1,2,3,4,5};表示定义一个变量a,其类型是数组,该数组的元素类型是int,该数组进行了初始化操作,数组大小确定为五个,元素分别是1,2,3,4,5.

int[] a =new int []  {1,2,3,4,5};

boolean[] a = {true,false};

String[] a = {"Hello ","World"};

String[] a = new String[] {"A","B"};

Random[] a = { new Random(),new Random(),new Random()};

注意:int[] a;  a = {1,2,3,4,5};     这种用法是错误的,不能使用这个语法

           int[] a;  a = new int[] {1,2,3};    而这种语法是正确的

int[] a = new int[3];   定义一个数组,元素个数为三;该式等价于 int[] a = new int[] {0,0,0}

String[] a = new String[3];  该式等价于 String[] a = new String[] {null,null,null};

注意:数组的长度一旦确定是无法更改的。

    int[] a = new int[3];   定义一个有三个元素的数组,让a引用指向该数组

    a = new int[5];  定义一个新的有五个元素的数组,让a引用指向新的数组

上面这种写法是可以的,本质上数组长度没有变,只是改变了a的引用指向。

二、数组的下标:

1.数组下标的类型为int类型,其下标范围为[0,数组的长度)。

2.使用下标访问数组元素的具体代码:

a[下标] = 0;将该位置的元素赋值为0;

b = a[下标];将该位置的元素赋值给另一个变量

三、对数组常见操作:

1.sort(排序操作)

自定义sort排序

2.binarySearch(二分查找)

注意:只有在数组有序的情况下,才可以进行二分查找。

 3.equals(判断两个数组是否相等)

 4.fill

5.copyOf(复制数组)

 copyOfRange(复制范围内的数组)

6.toString(相当于遍历,得到数组的字符串表示)

7.arraycopy

具体用法:在使用时输入原数组、原数组复制的开始下标、目标数组,目标数组的开始下标,拷贝长度。

 代码1:实现数组的遍历

        按照从前到后的顺序,访问数组中的每个元素(使用a.length来获取数组的长度)

 代码2:实现数组元素的交换

 代码3:实现两个数组之间的交换

使用数组过程中常见的两个异常:

1.下标越界异常

 2.空指针异常

        对一个值为null的引用做解引用操作时,会出现空指针异常。

 扩展:

       1. 对于引用类型来说,形参的改变不影响实参(除通过引用改对象之外)。

       2.一个对象可以被多个引用指向,而一个引用只能指向一个或0个对象,不能指向多个。

注意:在下面这种情况下,a引用为空也不会出错。

 

         从以上步骤可以看出,当执行了b[1 ] = 100时,a中的值发生了变化。

四、多维数组

        二维数组实际上就是将多个一维数组整合在一起的一个数组,多(n)维数组是将多个

(n-1)维数组整合到一起。下面通过对二维数组的相关操作来理解多维数组。

多维数组形式类型
一维数组long[]  a;long
二维数组long[][]  b;long[],是引用类型

        long[][]  a = new long[10][];   因为类型为long[],是引用类型,引用类型的默认值是null,所以该数组十个元素的值都为null。a[3]得到的类型为long[],a[3][0]代表从a这个数组取出下标是3的元素,元素类型为long[],所以从语法上讲,这种情况下还可以取出元素中的元素,但是所有默认值都为null,对其解引用就会出现空指针异常。

         综上所述,数组的大部分知识就以归纳完毕,如有错误,请指正!

 

这篇关于Java中的数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!