美文网首页
数组是什么?

数组是什么?

作者: 北京尚学堂 | 来源:发表于2018-08-03 10:20 被阅读0次

数组是一个固定长度的数据结构,用于保存多个相同数据类型的值。在数据类型之后或在变量声明中的变量名称之后放置[],使变量成为数组。

例如,

1intmyID;

上面是一个简单的变量声明。 这里,int是数据类型,myID是变量名。

数组声明

上面的这个声明意味着myID变量可以保存一个整数值。如果要声明数组,可在上面的声明中的数据类型之后放置[],如下所示 -

1int[] myID;

使myID是一个数组变量。上面的声明应叫作“myID是一个int数组”。可以通过在变量名之后放置[]来使myID变量成为一个数组,像这样:

1intmyID[];

上述两个声明都是有效的。

不能在声明数组时指定数组可以保存的值的数量。可以声明一个数组来保存同数据类型的多个值。 以下是其它形式的数组声明示例:

1

2

3

4

5

6

7

8

// salary can  hold  multiple float  values 

float[] salary;

// name can  hold  multiple references to String objects

String[]  name;

// emp can  hold  multiple references to Employee objects

Employee[]   emp;

创建数组

数组创建的一般语法如下:

以下代码创建Arraylength长度类型为ArrayDataType的数组对象

1newArrayDataType[Arraylength];

要创建一个数组来存储5个int类型的值:

1newint[5];

在此表达式中,5是数组的长度,它也称为数组的维度。有多个维度的数组称为多维数组。还可以将数组的声明及其创建在一个语句中组合。

1int[] myID = newint[5];

因为所有数组都是对象,所以它们的引用可以分配给对象类型的引用变量。 例如,

1

2

int[] myID = newint[5]; // Create an  array object

Object obj  = myID;              // A  valid  assignment

显式数组初始化

当声明数组或使用new运算符创建数组对象时,可以显式初始化数组的元素。元素的初始值由逗号分隔,并用大括号{}括起来。

1

2

// Initialize the array at the time of declaration 

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

此代码创建长度为5的int数组,并将其元素初始化为1,2,3,4和5。数组的长度与数组初始化列表中指定的值的数量相同。逗号跟随初始化列表中每个值直到最后一个值。

1

2

// A  comma   after the   last  value 5  is valid.

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

或者,可以初始化数组的元素,如下所示:

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

对于引用类型数组,可以指定初始化列表中的对象列表。以下代码说明了String的数组初始化。

1String[] names = {newString("A"), newString("B")};

1String[] names = {"C",  "D"};

增强for循环数组

可以使用for-each循环与数组。语法如下:

1

2

3

for(DataType e  : array)  {

}

以下代码使用for-each循环打印int数组的所有元素:

1

2

3

4

int[] numlist = {1, 2, 3};

for(intnum : numlist)  { 

   System.out.println(num);

}

可以使用基本的for循环完成同样的事情,如下:

1

2

3

4

5

int[] numlist = {1, 2, 3};

for(inti = 0; i < numlist.length; i++) { 

   intnum = numlist[i]; 

   System.out.println(num);

}

数组对象的类

数组是对象。Object类中的getClass()方法返回类的引用。

以下代码说明如何获取数组的类名。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

publicclassMain {

  publicstaticvoidmain(String[] args) {

    int[] iArr = newint[1];

    int[][] iiArr = newint[1][1];

    int[][][] iiiArr = newint[1][1][1];

    String[] sArr = { "A", "B"};

    String[][] ssArr = { { "A"}, { "B"} };

    String[][][] sssArr = {}; // A 3D empty array of string

    // Print the class name for all arrays

    System.out.println("int[]:"+ getClassName(iArr));

    System.out.println("int[][]:"+ getClassName(iiArr));

    System.out.println("int[][][]:"+ getClassName(iiiArr));

    System.out.println("String[]:"+ getClassName(sArr));

    System.out.println("String[][]:"+ getClassName(ssArr));

    System.out.println("String[][][]:"+ getClassName(sssArr));

  }

  publicstaticString getClassName(Object obj) {

    Class c = obj.getClass();

    String className = c.getName();

    returnclassName;

  }

}

上面的代码生成以下结果。

1

2

3

4

5

6

int[]:[I

int[][]:[[I

int[][][]:[[[I

String[]:[Ljava.lang.String;

String[][]:[[Ljava.lang.String;

String[][][]:[[[Ljava.lang.String;

数组的类名以左中括号[开头。左括号的数量等于数组的维数。

相关文章

  • JS 中的类数组对象如何转换为数组?

    大家好,我是前端西瓜哥,今天说一下 JS 的类数组对象是什么,以及如何将类数组对象转为数组。 类数组对象是什么? ...

  • 数组是什么?

    数组是一个固定长度的数据结构,用于保存多个相同数据类型的值。在数据类型之后或在变量声明中的变量名称之后放置[],使...

  • HashMap的原理简答

    说HashMap的原理,它吸收了数组和链表的优点,那数组是什么,优点是什么,数组的元素存储在内存中是连续的,它的下...

  • 阿里面试官:HashMap数据结构之道

    问题1:HashMap的数据结构是什么样的? 同学1:嗯...数组+链表 同学2:数组+链表... 同学3:数组+...

  • PHP易混淆知识点大分享-连载4... 

    数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式有哪两种? 32.数组如何遍历? foeach数...

  • JS数组

    1.js数组是什么? 1.1真实的数组 其实js不是典型的数组,是用对象来模拟的数组,真实的数据应该 元素的数据类...

  • Array对象的用法,js中数组方法

    【数组】 什么是数组:数组就是一组数据的集合数组对象的作用是什么:使用单独的变量名来存储一系列的值。 数组的创建:...

  • 数组、字符串、数学函数

    问答 数组方法里push、pop、shift、unshift、join、split分别是什么作用?push:向数组...

  • 18、数组、字符串、数学函数

    1、数组方法里push、pop、shift、unshift、join、split分别是什么作用。? push在数组...

  • 数组

    数组方法里push、pop、shift、unshift、join、split分别是什么作用。 push:在数组末尾...

网友评论

      本文标题:数组是什么?

      本文链接:https://www.haomeiwen.com/subject/wnqyvftx.html