以下是对数组的几个简单操作:
public class ArrayUtils{
//1.计算数组中最大值
public static int arrayMaxElement(int[] data){
if(data == null || data.length == 0)
return -1;
int max = data[0];
for(int i=0; i<data.length; i++){
if(max < data[i]){
max = data[i];
}
}
return max;
}
//2.计算数组中最小值
public static int arrayMinElement(int[] data){
if(data == null || data.length == 0)
return -1;
int min = data[0];
for(int i=0; i<data.length; i++){
if(min > data[i]){
min = data[i];
}
}
return min;
}
//3.计算数组值之和
public static int arrayElementSum(int[] data){
if(data == null)
return -1;
int sum = 0;
for(int i=0; i<data.length; i++){
sum = sum + data[i];
}
return sum;
}
//4.数组拼接
public static int[] arrayJoin(int[] a, int[] b){
if(a == null || a.length == 0)
return b;
if(b == null || b.length == 0)
return a;
if(a == null && b == null)
return null;
int[] c = new int[a.length + b.length];
for(int i=0; i<a.length; i++){
c[i] = a[i];
}
for(int j=0; j<b.length; j++){
c[a.length+j] = b[j];
}
return c;
}
//5.数组截取
//[start, end)
public static int[] arraySub(int[] data, int start , int end){
if(data == null || data.length == 0)
return null;
int[] data_new = new int[end-start];
if(start<end && start>=0 && end<=data.length){
for(int i=0; i<end-start; i++){
data_new[i] = data[i+start];
}
return data_new;
}
System.out.println("输入非法!");
return null;
}
//6.数组打印
public static void printArray(int[] data){
System.out.print("打印数组:");
if(data == null)
System.out.println("数组不存在!");
if(data.length == 0)
System.out.println("数组为空!");
for(int i=0; i<data.length; i++){
System.out.print(data[i]+" ");
}
System.out.println();
}
//7.数组反转
// 比如:[1,2,3,4] => [4,3,2,1]
public static void printReversal(int[] data){
if(data == null)
System.out.println("数组不存在!");
int[] data_new = new int[data.length];
for(int i=0; i<data.length; i++){
data_new[i] = data[data.length-i-1];
}
System.out.print("数组反转:");
printArray(data_new);
}
public static void main(String[] args){
//TODO 测试
int[] a = null;
int[] data = new int[]{1,9,12,17,18,33,65,6,8,22,57,49};
int[] data2 = new int[]{2,3,4,5};
printArray(data);
System.out.print("数组最大值:");
if(arrayMaxElement(data) == -1)
System.out.println("数组没有最大值!");
else
System.out.println(arrayMaxElement(data));
System.out.print("数组最小值:");
if(arrayMaxElement(data) == -1)
System.out.println("数组没有最小值!");
else
System.out.println(arrayMinElement(data));
System.out.print("数值元素之和:");
if(arrayMaxElement(data) == -1)
System.out.println("数组不存在!");
else
System.out.println(arrayElementSum(data));
System.out.print("另一个数组:");
printArray(data2);
System.out.print("数组拼接:");
if(arrayJoin(data,data2) == null)
System.out.println("两数组都为空!");
else
printArray(arrayJoin(data,data2));
System.out.print("数组从下标 3 到下标 6 截取(不包括 6 ):");
if(arraySub(data,3,6) == null)
System.out.println("数组为空!");
else
printArray(arraySub(data,3,6));
printReversal(data);
}
}
在Java命令下的运行结果:
当数组为空时:
正常运行时: