此代码是将一些常用的数组操作方法封装成一个类
功能有求最大值,最小值,求和,求平均值,排序,转置,拷贝
package test; // 此java文件所在的包
import static java.lang.System.out;
import java.util.Scanner;
import java.util.*;
class ArrayUtil{
private int max;
private int sum;
private int min;
private double avg;
public ArrayUtil(int array[])
{
this.max = array[0];
this.min = array[0];
for(int k : array)
{
if(k > max) this.max = k;
if(k < min) this.min = k;
this.sum += k;
}
avg = sum / array.length;
}
// 方法可变参数,可以传入任意多个参数,本质是一个变种数组, JDK 1.5及以后版本支持
public static int sum(int ... data)
{
int res = 0;
for(int k : data)
{
res += k;
}
return res;
}
// 数组拷贝参数为, 源数组, 源数组起始点, 目标数组, 目标数组起始点, 拷贝长度
public static void arrayCopy(int a1[], int s1, int a2[], int s2, int len)
{
//调用系统类库数组拷贝函数
System.arraycopy(a1, s1, a2, s2, len);
}
// 调用系统类库函数排序,一般为快速排序
public static void systemSort(int array[])
{
// java.util.Arrays.sort(array);
Arrays.sort(array);
}
// 冒泡排序, 如果不设为静态的则需要一个实例化对象才能调用, 下同
public static void bubbleSort(int array[])
{
for(int i=0; i < array.length; i++)
{
for(int j=i+1; j < array.length; j++)
{
if(array[i] > array[j])
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
// 选择排序
public static void selectionSort(int array[])
{
int idx = 0;
for(int i = 0; i < array.length - 1; i++)
{
idx = i;
for(int j=i; j < array.length; j++)
{
if(array[j] < array[idx])
idx = j;
}
int temp = array[i];
array[i] = array[idx];
array[idx] = temp;
}
}
// 数组转置
public static void arrayReverse(int array[])
{
int i = 0;
int j = array.length - 1;
while(i < j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
i++;
j--;
}
}
// 打印输出
public static void printArray(int array[])
{
for(int k : array)
{
System.out.print(k + " ");
}
System.out.println();
}
public int getMax() {
return this.max;
}
public int getMin() {
return this.min;
}
public int getSum() {
return this.sum;
}
public double getAvg() {
return this.avg;
}
}
public class ArrayDemo {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int array[] = new int[] {5, 4, 3, 2, 1};
ArrayUtil autil = new ArrayUtil(array);
System.out.println("max: " + autil.getMax());
System.out.println("min: " + autil.getMin());
System.out.println("sum: " + autil.getSum());
System.out.println("avg: " + autil.getAvg());
ArrayUtil.systemSort(array);
ArrayUtil.bubbleSort(array);
ArrayUtil.arrayReverse(array);
ArrayUtil.printArray(array);
ArrayUtil.selectionSort(array);
ArrayUtil.printArray(array);
// 方法可变参数,两种传入方法
System.out.println(ArrayUtil.sum(new int[] {1,2,3}));
System.out.println(ArrayUtil.sum(1, 2, 3, 4));
in.close();
}
}