Java基础 数组

  • Post author:
  • Post category:java


数组,就是相同数据类型元素按一定顺序排列的集合。

数组也是编程中最常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常我们可以通过数组元素的索引来访问数组元素。包括为数组元素赋值和取出数组元素的值。

Java语言数组有其特有的特征。

一、理解数组:数组也是一种类型

①Java的数组要求所有的数组元素都具有相同的数据类型。因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种类型的数据。

②数组一旦初始化完成,数组在内存所占用的空间将被固定下来,因此数组的长度不可变。

③Java的数组既可以存储基本类型的数据,也可以存储引用类型的数据,只要同一个数组里存储的是相同类型的数据类型的元素。

④int[]也是一种数据类型。它本身是一种引用类型。

二、定义数组

Java语言支持两种格式定义数组。

type[] arrayName;
type arrayName[];

对于这两种语法格式而言,推荐使用第一种形式。因为第一个形式不仅有很好的语义,而且有很好的可读性。

type[] arrayName;

很容易理解这是定义一个变量,这个变量名是arrayName,而变量类型是type[]。

数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针),这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组的长度。而且由于只是定义了一个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,必须初始化后才能使用。

三、数组的初始化

Java语言中数组必须先初始化(C语言中定义直接使用),然后才可以使用。

初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初值。

初始化的两种方式:

1.静态初始化:初始化时显示指定每个元素的初始值,由系统决定数组长度

2.动态初始化:初始化时候程序员只指定数组长度,由系统元素分配初始值。

①静态初始化

语法:

arrayName = new type[]{element1,element2,element3,...};

type是数据元素的数据类型。

例如

int[] intArr = new int[]{5,6,7,8};
String[] strArr = new String[]{"today","tomorrow"};

②动态初始化

语法:

arrayName = new type[length];

例如

int[] prices = new int[5];
String[] books = new String[5]; 

动态初始化时,系统会自动为这些数组赋值。

例如int型为0,String修改为null,boolean型为false,float型为0.0。


但是注意不要同时使用静态初始化和动态初始化。

四、使用数组

数组最常用的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值。访问数组一般通过在数组引用变量后跟一个方括号([ ]),方括号里是数组的索引值。

例如:

String[] strArr = new String[] {"today" , "tomorrow"};

//给第一个元素赋值
strArr[0] = "name";
//输出第二个元素
System.out.println(strArr[1]);

所有的数组都提供了length属性,这个属性可以访问到数组的长度,可以通过循环来遍历该数组的每个数组元素。

例如:

int[] prices = new int[10];

//使用循环输出prices数组的每个元素的值
for(int i = 0;i < prices.length ;i++)
{
    System.out.println(prices[i]);
}

上面将会输出5个0,因为prices执行的是默认初始化,数组元素是int型的数组元素赋值为0。

String[] books = new String[2];
//对动态初始化后的数组元素进行赋值
books[0] = "C Primer Plus";
books[1] = "数据结构";
//使用循环输出books数组的每个数组元素的值
for(int i = 0;i < books.length;i++)
{
    System.out.println(books[i]);
}



版权声明:本文为OREO_GO原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。