[Java 基础]数组

xiaoxiao2021-02-28  90

数组初始化

定义数组语法格式

定义数组有两种方式,如下两种格式是等价的:

int[] a1; int a1[];

 注:在C/C++中,不支持第一种格式。但是,推荐使用这种方式,因为这样似乎更合理,声明了一个整型数组类型的变量,名字为a1。

 

数组大小

 JAVA中,数组不允许在方括号中指定维度(即在方括号中指定数字来限制数组大小)。那么,如何限定数组的大小呢?有以下两种方式:

●使用初始化列表

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

注:初始化列表的最后一个逗号是可选的(这一特性使维护长列表变得更容易)。

 

对象数组

基本类型数组就是指保存的数据类型为基本类型的数组,如int、long、double等。

对象数组是指保存的数据类型为非基本类型的数组,如一些内置类或自定义类等。

对象数组和基本类型数组在使用上几乎是相同的;唯一区别就是对象数组保存的是引用,而基本类型数组直接保存的是基本类型的

如下代码中,声明一个自定义类apple类型的数组。如果在数组的各元素还未初始化时就引用这些元素,运行时会报错(代码注释处)。

class Apple { } Apple[] apples; apples =  new Apple[3]; // System.out.println(apples[0].toString()); for ( int i = 0; i < 3; i++)     apples[i] =  new Apple(); System.out.println(apples[0].toString());

 

使用new int[]

int[] array; array =  new  int[5];     // 分配一个含有5个int型元素大小的数组,所有元素自动初始化为0

 

数组赋值

不同于C/C++,在JAVA中,允许将一个数组整体赋值给另一个数组。如下:

int[] array = {1, 2, 3, 4, 5,}; int[] array2; array2 = array; for ( int i = 0; i < array2.length; i++) {     array2[i] = array2[i] + 1;  // 给数组元素赋值 } for ( int i = 0; i < array.length; i++) {     System.out.print(array[i] + " "); }

运行结果:

2 3 4 5 6

这里,其实是复制了一个引用。当array的引用复制给array2后,再对array2进行修改实际上等同于修改array。所以两个数组的值同时发生改变。

注:和C/C++一样,JAVA数组计数也是从第0个元素开始,所以下标最大值为length-1。如果超出边界,编译器会提示错误。

 

数组的特点

数组是一种效率最高存储随机访问对象引用序列的方式。

如果和现在广泛使用的容器相比较,它的优点在于访问效率比较高,缺点在于大小固定,没有容器的大小伸缩性。

 

Arrays实用功能

在 java.util.Arrays 类中提供了一套用于数组的static实用方法。以下介绍几个常用的基本方法:

方法名作用equals比较两个数组是否相等,deepEquals用于多维数组fill用同一个值填充各个位置。sort对数组排序binarySearch用于已经排序的数组中查找元素toString产生数组的String表示hashCode产生数组的散列码
转载请注明原文地址: https://www.6miu.com/read-67137.html

最新回复(0)