JAVA-数组

求一个数组的最大值、最小值、总和,拼接两个数组,从指定数组截取某一段,反转数组,用Java语言实现。在这里要注意到的是,从数组中截取部分,对于输入的数字需要进行判断,看是否合法,其他的与C、C++类似。看代码
MAX

//1.计算数组中最大值
  public static int arrayMaxElement(int[] data){
 	 int intMaxValue = data[0];
 		 for(int i = 0; i < data.length; i++){
 	 		if(data[i] > intMaxValue){
    			intMaxValue = data[i];
   			 }
  		 }
          return intMaxValue;
 }

MIN

//2.计算数组中最小值
public static int arrayMinElement(int[] data){
         int intMinValue = data[0];
 	 for(int i = 0; i < data.length; i++){
   		if(data[i] < intMinValue){
    		intMinValue = data[i];
  		 }
 	   }
        return intMinValue;
    }

SUM

//3.计算数组值之和
public static int arrayElementSum(int[] data){	
	int intValueSum = 0;
	for(int i = 0; i < data.length; i++){
   		intValueSum = intValueSum + data[i];
 	 }
  	 return intValueSum;
 }

数组拼接

//4.数组拼接
 public static int[] arrayJoin(int[] a, int[] b){
	 int[] c = new int[a.length + b.length];
	 for(int i = 0; i < a.length; i++){
 		c[i] = a[i];
	 }
  	 for(int i = a.length; i < c.length; i++){
   		 c[i] = b[i-a.length];
  	 }
   	for(int i = 0; i < c.length; i++){
    		System.out.print(c[i]+" ");
  	 }
	return c;
 }

数组截取

//5.数组截取
    //[start, end)
public static int[] arraySub(int[] data, int start , int end){
        //必须先判断条件
 	if(((start < 0)||(end > data.length))||(start > end)){
 		System.out.print("截取从"+start+"开始到"+end+"结束的新数组:");
 		System.out.println("数字非法!!!");
 		return null;
 	 }else{
   		int[] arr = new int[end - start];
 		  //注意该条件的位置,如果满足(start>end),就不会new一个新数组,自然会报错
   		System.arraycopy(data,start,arr,0,arr.length);
  		 System.out.print("截取从"+start+"开始到"+end+"结束的新数组:");
  		 printArray(arr);
  		 return arr;
 	 }
  }

数组打印

//6.数组打印
public static void printArray(int[] data){
	for(int i = 0; i < data.length; i++){
  		System.out.print(data[i]+" ");
 	 }
 }

数组反转

//7.数组反转
    // 比如:[1,2,3,4] => [4,3,2,1]
public static void printReversal(int[] data){
	for(int i = 0; i < data.length / 2; i++){
		int tmp = data[data.length - i - 1];
   		data[data.length - i - 1] = data[i];
  		 data[i] = tmp;
 	 }
 	 printArray(data);
 }

测试代码

public class ArrayUtils{
	public static void main(String[] args){
        //测试 
		 int[] array = new int[] {33,67,45,6,43,21,11,55};
 		 System.out.println("选用数组为:");
 		 printArray(array);
 		 System.out.println();
  
  		System.out.println("最大值:"+arrayMaxElement(array));
  		System.out.println();
  
  		System.out.println("最小值:"+arrayMinElement(array));
  		System.out.println();
  
 		 System.out.println("总和是:"+arrayElementSum(array));
  		 System.out.println();  
 
 		 int[] array1 = new int[] {8,7,6,5,4,3,2,1};
 		 int[] array2 = new int[] {99,88,77,66,55,44,33,22,11};
 		 System.out.print("拼接之前两个数组分别为:");
  		 printArray(array1);
  		 System.out.println();
  
 		 printArray(array2);
  		 System.out.println();
  
  		System.out.print("拼接之后为:");
  		System.out.print(arrayJoin(array1,array2));
  		System.out.println();
  
  		System.out.print("要截取的数组:");
  		printArray(array1);
  		System.out.println();
  		arraySub(array1, 5, 10);
  		System.out.println();
  
  		 System.out.print("反转之前的数组:");
 		 printArray(array1);
 		 System.out.println();
 		 System.out.print("反转之后的新数组:");
 		 printReversal(array1);
 		 System.out.println();
		 }
}

结果
(end > data.length)
JAVA-数组
(start > end)
JAVA-数组
(start < 0)
JAVA-数组
正常情况
JAVA-数组