数组(一)

2014-11-24 09:12:27 · 作者: · 浏览: 2

数组是一组具有相同数据类型的序列。这数据类型可以是基本数据类型,也可以是自定义数据类型。数组是一种常见的数据结构,是基于顺序存储结构实现。它遍历简单有效,但是数组的大小是固定的,同时,对数组进行删除和插入等操作效率较低。

Java语言中,数组很是重要。Java数组内的元素可以是基本数据类型,也可以对象引用类型。根据数组的维数可以划分为一维数组、二维数组和多维数组。实际上二维数组就是一维数组的数组,而多维数组依次类推。因而,认识和理解一维数组尤为关键。

1.一维数组的创建、初始化与应用

一维数组表示一维空间的数组,通过整型标签可以访问数组中的每个元素。

一维数组的创建,语法格式如下:

数组类型[] 数组名;

或者

数组类型 数组名[];

建议采用第一种创建数组的方式。

需要维数组分配内存空间的语法格式如下:

数组名 = new 数组类型[数组长度];

创建数组后,需要对数组进行初始化,数组初始主要有如下方式:

[java]
int[] arr = {1,2,3,4,5};//数组初始化第一种方式
int[] arr = new int[]{1,2,3,4,5};//数组初始化第二种方式
或者
int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
创建和初始化数组,就可以对数组进行一些操作和应用。

应用一:如何遍历数组中的内容?

遍历数组的内容就是访问并且输出数组中的内容,实例代码如下:

[java]
/**
*

Title:遍历一维数组实例


*

Description:遍历一维数组的内容


*

Copyright:Copyright(c) 2012


*

Filename:PrintArray1Content.java


*@author 王路情
*@version 1.0
*/

public class PrintArray1Content {
/**
*方法描述:主方法
*输入参数:String[] args
*返回类型:void
*/
public static void main(String[] args) {
int[] arr1 = new int[]{1,2,3,4,5};
System.out.println("访问并输出一维数组的内容:");
for(int index=0;index System.out.print(arr1[index] + " ");
}
System.out.println();
}
}
运行结果如下所示:

访问并输出一维数组的内容:

1 2 3 4 5

应用二:如何全部复制数组中的内容?

在此,介绍几种常用的方法。

第一种方法:利用遍历实现复制

[java]
/**
*

Title:全部复制一维数组内容实例


*

Description:采用遍历全部复制一维数组内容


*

Copyright:Copyright(c) 2012


*

Filename:CopyArray1Way1.java


*@author 王路情
*@version 1.0
*/

public class CopyArray1Way1 {
/**
*方法描述:主方法
*输入参数:String[] args
*返回类型:void
*/
public static void main(String[] args) {
int[] arr1 = new int[]{1,2,3,4,5};
int[] arr2 = new int[arr1.length];

//全部复制一维数组的内容
for(int index=0;index arr2[index] = arr1[index];
}

System.out.println("访问并输出一维数组的内容:");
for(int index=0;index System.out.print(arr2[index] + " ");
}
System.out.println();
}
}
运行结果如下所示:

访问并输出一维数组的内容:

1 2 3 4 5

第二种方法:利用Arrays类的copyOf()或copyOfRange()方法

[java]
import java.util.Arrays;

/**
*

Title:全部复制一维数组内容实例


*

Description:采用遍历全部复制一维数组内容


*

Copyright:Copyright(c) 2012


*

Filename:CopyArray1Way2.java


*@author 王路情
*@version 1.0
*/

public class CopyArray1Way2 {
/**
*方法描述:主方法
*输入参数:String[] args
*返回类型:void
*/
public static void main(String[] args) {
int[] arr1 = new int[]{1,2,3,4,5};
//利用Arrays类中的copyOf()方法实现复制数组全部内容
int[] arr2 = Arrays.copyOf(arr1,arr1.length);
//利用Arrays类中的copyOfRange()方法实现复制数组全部内容
int[] arr3 = Arrays.copyOfRange(arr1,0,arr1.length);

System.out.println("使用Arrays类copyOf()方法实现复制数组全部内容:");
for(int index=0;index System.out.print(arr2[index] + " ");
}
System.out.println();

System.out.println("使用Arrays类copyOfRange()方法实现复制数组全部内容:");
for(int index=0;index System.out.print(arr3[index] + " ");
}
System.out.println();
}
}
运行结果如下所示:
使用Arrays类copyOf()方法实现复制数组全部内容:

1 2 3 4 5

使用Arrays类copyOfRange()方法实现复制数组全部内容:

1 2 3 4 5

第三种方法:利用System类的arraycopy()方法

[java]
/**
*

Title:全部复制一维数组内容实例


*

Description:采用System类的arraycopy()全部复制一维数组内容


*

Copyright:Copyright(c) 2012


*

Filename:CopyArray1Way2.java


*@author 王路情
*@version 1.0
*/

public class CopyArray1Way3 {
/**
*方法描述:主方法
*输入参数:String[] args
*返回类型:void
*/
public static void main(String[] args) {
int[] arr1 = new int[]{1,2,3,4,5};
int[] arr2 = new int[arr1.length];

/