第五章 数组与字符串

发布时间 : 星期六 文章第五章 数组与字符串更新完毕开始阅读

Java程序设计入门与精通

max=a[i];

System.out.println(\数组最大值为\//对数组升序排序

for(i=0;ia[j]){ temp=a[i];

a[i]=a[j]; a[j]=temp;

}

//输出排序之后的数组

System.out.println(\数组排序之后的结果为\

for(i=0;i

运行结果如图5-9:

图5-9例5-4程序运行结果图

5.1.5 数组参数与相关系统方法

在java的方法中,允许数组或数组元素作参数。在使用数组作参数时,应注意以下事项: (1) 在形式参数表中,数组后面的括号不能省略。括号的个数要与维数一致。 (2) 在实际参数表中,数组后不需要括号。

(3) 数组名作实际参数时,它向形式参数传递的是地址,也就是说,形式参数与实际

参数拥有相同的存储空间。所以,如果在方法中更改了形式参数的值,对应实际参数的值也就被改变了。

75

第五章 数组和字符串

【例5-5】计算数组元素的平均值。 设计思路:

编写方法static float arrayAaverage (int x[ ])求x数组的平均值,在主方法main()中先建立数组a[],再通过System.out.println(arrayAaverage (a))调用该方法完成题目要求。

代码:

// ArrayAve.java源程序 class ArrayAve

{

public static void main(String args[]){

int a[]={1,2,3,4,5,6,7};

int j;

System.out.println(\数组a各元素的值为:\for(j=0; j

System.out.println(\数组a的平均值为:\ // a数组作实际参数不带括号

System.out.println(arrayAaverage (a));

}

static float arrayAaverage (int x[ ]){ // x数组作形式参数括号不能省略 } }

运行结果如图5-10:

float ave=0f;

for(int i=0; i

图5-10例5-5程序运行结果图

76

Java程序设计入门与精通

数组元素也可以作实际参数,它向形式参数传递的是元素的值,也就是说,形式参数与实际参数各自拥有不同的存储空间。这样,如果在方法中更改了形式参数的值,对应实际参数的值不受影响。

Java语言还提供了一些专门用于数组操作的方法,通过调用这些系统方法,可以用更加简洁的形式实现指定的程序功能。下面,我们将通过例子展示这些方法的使用。

【例5-6】使用System 类的arraycopy方法复制数组

方法:System.arraycopy(from,fromIndex, to,toIndex,count);

该方法从数组from的索引fromIndex位臵起,复制count个元素到数组to的从索引toIndex位臵开始的地方。

代码:

// UseArrayCopy.java源程序 class UseArrayCopy{ }

public static void main(String args[]){ char a[]={'a','b','c','d','e','f','g'}; char b[]=new char[7]; int i;

//从数组a的位臵1起,复制3个元素到数组b的从索引位臵2开始的地方

System.arraycopy(a,1,b,2,3); for(i=0;i

System.out.print(a[i]+\ \

for(i=0;i

System.out.print(b[i]+\ \ System.out.print(\ }

System.out.println(\

运行结果如图5-11:

图5-11例5-6程序运行结果图

77

第五章 数组和字符串

注意: 目标数组必须在调用arraycopy之前分配内存,而且这个内存

空间必须足够容纳被复制的数据。

在“java.util”包中,还专门有一个数组类Arrays,该类提供了一些方法用于排序、查找等操作,在编制程序中可以直接使用这些方法。

【例5-7】调用sort方法来对数组排序。

可以直接使用Arrays类提供的sort方法对数组排序。sort方法常用形式如下: public static void sort(Xxx a[])

该方法用改进的快速排序方法对指定的数组a进行排序,其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组。

代码:

//数组排序:ArraySort.java源程序 import java.util.*; public class ArraySort{

public static void main(String args[]){

char ch []={'h','f','c','d','e','a','b'}; System.out.println(\数组ch排序前为:\ for(int i=0;i< ch.length;i++)

System.out.print(ch[i]+\ \

System.out.println();

System.out.println(\数组ch排序后为:\Arrays.sort(ch);

for(int i=0;i

System.out.print(ch[i]+\ \ System.out.println(); } }

运行结果如图5-12:

图5-12例5-7程序运行结果图

【例5-8】调用binarySearch方法在数组中查找指定的值。 设计思路:

78

联系合同范文客服:xxxxx#qq.com(#替换为@)