面向对象的方法重写数组功能

用面向对象的方法把可以对数组实现的功能写在对应的方法里,以待什么时候需要就调用此方法来实现对应的功能。

方法类:ArrayUtil

 1 package com.sanguosha.exer;
 2 //一个数组的工具类
 3 public class ArrayUtil {//设置好需要调用的方法
 4         //设置求数组的最大值的方法
 5         public int getMax(int[] arr){//传进来一个数组参数,针对这个数组
 6             int max=arr[0];
 7             for(int i=0;i<arr.length;i++){
 8                 if(max<arr[i]){
 9                     max=arr[i];
10                 }
11             }
12             return max;
13         }
14         //设置求数组的最小值的方法
15         public int getMin(int[] arr){//传参
16             int min=arr[0];
17             for(int i=0;i<arr.length;i++){
18                 if(min>arr[i]){
19                     min=arr[i];
20                 }
21             }
22             return min;
23         }
24         //设置求数组的总和的方法
25         public int getSum(int[] arr){
26             int sum=0;
27             for(int i=0;i<arr.length;i++){
28                 sum+=arr[i];
29             }
30             return sum;
31         }
32         //求数组的平均值
33         public double getAgv(int[] arr){
34             int sum=0;
35             double agv=0;//局部变量必须初始化********注意
36             for(int i=0;i<arr.length;i++){
37                 sum+=arr[i];
38                 agv=sum/arr.length;
39             }
40             return agv;
41         }
42         //遍历数组元素
43         public void showArr(int[] arr){
44             for(int i=0;i<arr.length;i++){
45                 System.out.print(arr[i]+"  ");
46             }
47         }
48         //数组的复制
49         public int[] arrCopy(int[] arr){//设置返回值类型为一个数组
50             int[] fuzhi=new int[arr.length];
51             for(int i=0;i<arr.length;i++){
52                 fuzhi[i]=arr[i];
53                 //System.out.print(fuzhi[i]+"  ");
54             }
55             for(int i=0;i<fuzhi.length;i++){
56                 System.out.print(fuzhi[i]+"  ");//复制后遍历
57             }
58             return fuzhi;//返回一个数组
59         }
60         //数组的反转
61         public int[] fanZhuan(int[] arr){
62             for(int i=0;i<arr.length/2;i++){
63                 //int temp=0;
64                 //temp=arr[i];
65                 //arr[i]=arr[arr.length-1-i];
66                 //arr[arr.length-1-i]=temp;
//可以直接调用交换方法来实现交换了
jiaoHuan(arr,i,arr.length-1-i);
67 } 68 return arr; 69 } 70 //数组的排序 71 public void sort(int[] arr){//实现排序 72 for(int i=0;i<arr.length-1;i++){//冒泡排序走arr.length-1趟 73 for(int j=0;j<arr.length-1-i;j++){//每趟比较的次数 74 //从头比较相邻的两个数,若前边的大,则交换 75 if(arr[j]>arr[j+1]){ 76 //int temp=0; 77 //temp=arr[j]; 78 //arr[j]=arr[j+1]; 79 //arr[j+1]=temp;
//这时候就不用写这个交换代码了,直接调用交换方法
jiaoHuan(arr,j,j+1);
80 } 81 } 82 } 83 }
//设置一个交换方法jiaoHuan()用以调用。
public void jiaoHuan(int[] arr,int i,int j){//注意************此处参数的写法,交换一个数组中的两个位置的元素***********
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
84 }

 

需要对数组进行操作时,调用以上方法

定义一个类TestArray:

 1 package com.sanguosha.exer;
 2 
 3 public class TestArray {
 4     public static void main(String[] args) {
 5         int[] arr=new int[]{12,23,-45,3,47,-86,3,100,1,2};//声明一个数组arr
 6         ArrayUtil AU=new ArrayUtil();//用ArrayUtil类实例化一个对象
 7         
 8         int zuidazhi=AU.getMax(arr);//调用写好的求最大值的getMax()方法
 9         System.out.println("arr数组的最大值是:"+zuidazhi);//打印最大值
10         
11         int zuixiaozhi=AU.getMin(arr);//调用getMin()方法
12         System.out.println("arr数组的最小值是:"+zuixiaozhi);
13         
14         int zonghe=AU.getSum(arr);//调用getSum()方法
15         System.out.println("arr数组的总和是:"+zonghe);
16         
17         double pingjun=AU.getAgv(arr);//调用getAgv()
18         System.out.println("arr数组的的平均值是:"+pingjun);
19         
20         System.out.println("遍历arr数组:");
21         AU.showArr(arr);//遍历,调用showArr()
22         
23         System.out.println("\n复制出的数组是:");
24         AU.arrCopy(arr);//调用复制方法
25         
26         System.out.println("\n数组反转后:");
27         AU.fanZhuan(arr);//实现数组的反转
28         AU.showArr(arr);//反转后再次打印arr数组
29         
30         System.out.println("\n排序后的数组:");
31         AU.sort(arr);//调用排序方法sort()
32         AU.showArr(arr);//排序后调用遍历方法遍历
33     }
34 }

运行结果:

posted @ 2015-08-28 22:24  云晴  阅读(1032)  评论(1编辑  收藏  举报