Java基础3——数组

一、一维数组

数组由同一类型的基本数据或对象组成,并封装在同一个标识符下。

(1)声明数组变量:定义数组的名字或引用,不指定元素个数,不分配内存。如果该变量不包含对数组的引用,则这个变量的值为null。

elementType[]arrayRefVar;

(2)创建数组:数组是对象,运行时需要动态初始化。用new操作符创建数组,并将该数组的引用赋给变量arrayRefVar。arraySize可以是常量或有值的变量。

arrayRefVar=newelementType[arraySize];

声明创建数组:elementType[]arrayRefVar=new elementType[arraySize];

声明创建初始化数组:double[]myList={1.9,2.9,3.4,3.6};//省略new。

(3)访问数组:下标从0开始到arrayRefVal.length-1,类型为byte、short、int、char。

arrayRefVal[index]=value;

(4)数组大小:创建数组后就不能再修改其大小,每个数组中都有一个由public final修饰的成员变量length,arrayRefVal.length获取数组大小。

(5)默认值:数值型0,char型’\u0000’,boolean型false。

(6)复制数组

list2=list1;不能实现数组内容的复制,只是将list1的引用值复制给了list2,list2原来引用的数组不能再引用,变为垃圾。

使用循环语句逐个复制数组元素。

使用java.lang.System类中的静态方法arraycopy。复制前必须创建目标数组以及分配给它的内存空间。

System.arraycopy(sourceArray,srcPos,targetArray,tarPos,length);

二、二维数组

二维数组的每一个元素都是一维数组。Int[][]myArray;初始值为null。创建二维数组:

int[][] a=newint[2][3];//a.length为2,a[0].length为3

int[][] b=newint[2][];  b[0]=new int[3];//用new创建数组时,必须指定第一个下标

int[][] c={//二维数组的每一行可以不同,锯齿数组

{1,2,3,4},

{1,2,3},

{1,2}

};

三、Arrays类

java.util.Arrays类包含一些实用的方法,用于常见的数组操作。这些方法都有对所有基本类型的重载方法。

(1)数组复制copyOfRange

只需要源数组,from表示起始位置(取得到),to表示结束位置(取不到)。

int[] targetArray=Arrays.copyOfRange(sourceArray,from,to);

(2)数组排序sort

Arrays.sort(arrayRefVar);//对整个数组

Arrays.sort(arrayRefVar,from,to);//对数组元素from-(to-1)

如果计算机有多个处理器,parallelSort更高效。

(3)查找元素出现的位置binarySearch

需保证数组升序有序。如果数组中有多个相同元素,结果不确定。如果数组中不存在该关键字,返回-(插入点下标+1)。

Arrays.binarySearch(arrayRefVar,value);

(4)比较两个数组是否相等equals

Arrays.equals(arrayRefVar1,arrayRefVar2);

(5)填充数组fill

Arrays.fill(arrayRefVar,value);//填充整个数组

Arrays.fill(arrayRefVar,from,to,value);//填充数组下标from-(to-1)

(6)将数组转换为字符串toString

显示数组所有元素的简便方法。Arrays.toString(arrayRefVar);

对于char[]类型的数组,可以使用一条打印语句打印。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值