您的位置 首页 java

读书笔记-java高级编程之数组

数组是一种重要的数据结构,它是有同一类相关的数据构成的。 Java 中的数组被作为对象来处理,这也是java面向对象的有力证明。数组有具有同一名字和相同类型的一组连续内存单元构成,数组中的每个数据称为元素,为了访问数组的某一元素,应指定数组名及数组元素的位置序号,该序号称为数组下标。

声明数组格式:数组元素类型 数组名[];或数组元素类型[] 数组名;如int[] c;也可以同时声明多个同类型的数组变量,如double[] c1,c2;注意,java与c、c++不同,不允许在数组名后面的方括号内指定数组元素的个数。

内存分配:一个数组类型的变量存放一个对象引用。数组要占据内存空间,但java声明数组变量后并没有为数组分配内存空间,而只是创建了存放数组引用的变量。因此在使用数组之前还要使用new运算符为数组分配内存空间。创建数组内存空间的语法格式:数组名=new 数组元素类型[数组元素个数];一个声明语句中可以同时声明多个数组,并为它们保留内存空间,如String[] a = new String[100], b = new String[50];

数组初始化:创建数组时每个元素都有被初始化,如果数组的类型是基本数据类型,那么数组元素的初始化这一步可以省略,因为基本数据类型都有默认的初始值,因而不必专门进行创建和初始化工作就可以直接使用。

基本数据类型默认初始值列表

有两种方法可以获得数组的长度(数组中元素的个数)。1.数组中的length属性,数组名.length;2.Array类的静态方法getLength,该方法原型如下:Public static int getLength(Object array)。

数组元素可以是基本数据类型也可以是某个类的对象。如果数组元素是某种类对象的数组,由于数组元素不会默认地进行创建和初始化,因此在使用对象数组之前必须对其进行初始化,否则将会出现NullPointerException的异常错误。

一旦数组初始化或使用new分配空间以后,数组的长度就固定不能改变了,除非使用new运算符重新分配空间。对一个数组再次动态分配空间时,若该数组的存储空间的引用没有另外的存储,则该数组的数据将会丢失。

Arrays类是java语言的java.util包提供的一个工具类。它包含了多种对数组进行操作的方法,如对数组的排序sort()、二分查找binarySearch()等静态方法。

Arrays类提供了一个静态方法sort对数组进行排序操作。sort方法对指定的数组按升序方式进行排序。该方法的原型如下:public static void sort( Object [] a);public static void sort(Object[] a,int fromIndex,int toIndex)。

Arrays类提供了一个折半查找的静态方法binarySearch,它使用折半查找算法在数组中查找一个指定的值算法存在。由于该方法使用的是折半查找算法,因此进行查找操作的数组必须是已经按升序排序的,否则查找结果将不准确,该方法的原型是public static int binarySearch(Object[] a,key),该方法在数组中查找是否有key所指定的值,如果查找成功,返回该值对应的数组下标。

Java语言支持多维数组,多维数组可以简单地看做数组的数组。 二维数组 的声明和初始化:type arrayName[][];或type[][] arrayName;其中type表示数组元素的类型,可以是基本数据类型或者是某个类。与一维数组一样,二维数组定义时并没有分配内存空间,如果要引用数组元素,必须首先对二维数组进行初始化。二维数组也可以看成是一个特殊的一维数组,该数组每一个元素都是一个一维数组,如int[][] twodim=new int[2][];twodim[0]=new int[2];towdim[1]=new int[3]。

二维数组的引用格式:arrayName[index1][index2],其中arrayName代表二维数组的名称,index1和index2代表数组下标。

文章来源:智云一二三科技

文章标题:读书笔记-java高级编程之数组

文章地址:https://www.zhihuclub.com/192357.shtml

关于作者: 智云科技

热门文章

网站地图