1. 程式人生 > >java語言求陣列最大值、最小值、總和,列印,翻轉、擷取等操作

java語言求陣列最大值、最小值、總和,列印,翻轉、擷取等操作

//Java陣列章節練習題
public class ArrayUtils{

    //1.計算陣列中最大值
    public static int arrayMaxElement(int[] data){
        
		int max=data[0];
		for(int i=0;i<data.length;i++){
			if(max<data[i]){
				max=data[i];
			}		
		}
		System.out.println("最大值為:"+max);
        return max;
    }
    
    //2.計算陣列中最小值
    public static int arrayMinElement(int[] data){
       
		int min=data[0];
		for(int i=0;i<data.length;i++){
			if(min>data[i]){
				min=data[i];
			}
		}
		System.out.println("最小值為:"+min);
        return min;
    }
    
    
    //3.計算陣列值之和
    public static int arrayElementSum(int[] data){
        
		int sum=0;
		for(int i=0;i<data.length;i++){
			sum+=data[i];
		}
		System.out.println("陣列總和為:"+sum);
        return sum;
    }
    
    //4.陣列拼接
    public static int[] arrayJoin(int[] a, int[] b){
        //TODO
		int[] c=new int[a.length+b.length];
		for(int i=0;i<a.length;i++){
			c[i]=a[i];
		}
		for(int j=a.length;j<c.length;j++){
			c[j]=b[j-a.length];
		}
		for(int n=0;n<c.length;n++){
			System.out.print(c[n]+" ");
		}
        return null;
    }

    //5.陣列擷取
    //[start, end)
    public static int[] arraySub(int[] data, int start , int end){
        if(start>end){
			System.out.print("陣列越界!");
			return null;
		}
		if(start<0&&end<data.length){
			start=0;
		}else if(start>=0&&end>=data.length){
			end=data.length-1;
		}
		while(start<end){
			System.out.print(data[start]+" ");
			start++;
		}
		System.out.print(data[end]);
        return null;
    }
    
    //6.陣列列印
    public static int printArray(int[] data){
        
		for(int i=0;i<data.length;i++){
			System.out.print(data[i]+" ");
		}
		return 0;
    }
    
    //7.陣列反轉
    // 比如:[1,2,3,4] => [4,3,2,1]
    public static void printReversal(int[] data){
        
		int start=0;
		int end=data.length-1;
		while(start<end){
			data[start]^=data[end];
			data[end]^=data[start];
			data[start]^=data[end];
			start++;
			end--;
		}
		
    }
    
    public static void main(String[] args){
        
		
		int[] Array=new int[]{1,4,2,5,33,51,12};
		int[] Array2=new int[]{6,45,23,12};
		
		//1.計算陣列最大值
		arrayMaxElement(Array);
		
		//2.計算陣列最小值
		arrayMinElement(Array);
		
		//3.計算陣列總和
		arrayElementSum(Array);
		
		//陣列拼接
		System.out.println("拼接後的陣列為:");
		arrayJoin(Array,Array2);
		System.out.println();
		//陣列翻轉
		System.out.print("翻轉後的陣列為:");
        printReversal(Array);
		System.out.println();
		//列印陣列
		printArray(Array);
		System.out.println();
		//擷取後的陣列為
		System.out.println("擷取後的陣列為:");
		arraySub(Array,-1,5);
		
    }
}