需求:在实际开发中,经常会遇到一些数组使用的工具类。请按照如下要求编写一个数组的工具类:ArraysUtils
1.我们知道数组对象直接输出的时候是输出对象的地址的,而项目中很多地方都需要返回数组的内容,请在ArraysUtils中提供一个工具类方法toString,用于返回整数数组的内容,返回的字符串格式如:[10, 20, 50, 34, 100](只考虑整数数组,且只考虑一维数组)
2.经常需要统计平均值,平均值为去掉最低分和最高分后的分值,请提供这样一个工具方法getAerage,用于返回平均分。(只考虑浮点型数组,且只考虑一维数组)
3.定义一个测试类Test,调用该工具类的工具方法,并返回结果。
测试类:
public class Test {
public static void main(String[] args) {
int[] arr = {10, 20, 30,40,50};
System.out.println(ArrayUtils.toString(arr));
System.out.println(ArrayUtils.getAverage(arr));
int[] arr1 = null;
System.out.println(ArrayUtils.toString(arr1));
System.out.println(ArrayUtils.getAverage(arr1));
int[] arr2 = {};
System.out.println(ArrayUtils.toString(arr2));
System.out.println(ArrayUtils.getAverage(arr2));
}
}
运行程序输出如下:
[10,20,30,40,50]
30.0
null
0.0
[]
0.0
package com.imooc.utils;
import com.alibaba.fastjson.JSON;
/**
* 数组工具类
*/
public class ArrayUtils {
public static String toString(int[] args) {
return JSON.toJSONString(args);
}
/***
* 去除一个最高最低分后求均值
*
* @param args 数组
* @return 均值
*/
public static Float getAverage(int[] args) {
args = BubbleSortMethod(args);
int count = 0;
if (args == null || args.length == 0) {
return 0f;
}
for (int i = 1; i < args.length - 1; i++) {
count += args[i];
}
return count * 1.0f / (args.length - 2);
}
/**
* 冒泡排序
*
* @param arr 待排序数组
* @return 排序后数组
*/
public static int[] BubbleSortMethod(int[] arr) {
if (arr == null || arr.length == 0) {
return arr;
}
int temp = 0;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
/**
* 主方法测试
*
* @param args
*/
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
System.out.println(ArrayUtils.toString(arr));
System.out.println(ArrayUtils.getAverage(arr));
int[] arr1 = null;
System.out.println(ArrayUtils.toString(arr1));
System.out.println(ArrayUtils.getAverage(arr1));
int[] arr2 = {};
System.out.println(ArrayUtils.toString(arr2));
System.out.println(ArrayUtils.getAverage(arr2));
}
}
效果: