Java程序设计入门与精通
max=a[i];
System.out.println(\数组最大值为\//对数组升序排序
for(i=0;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