工具类是什么,有什么好处?
①内部都是一些静态方法,每个方法完成一个功能 一次编写,
处处可用,提高代码的重用性。
工具类有什么要求?
①建议工具类的构造器私有化处理。
②工具类不需要创建对象。
请按照如下要求编写一个数组的工具类:ArraysUtils :
①请在ArraysUtils类中提供一个工具类方法toString,用于返回整数数组的内容,返回的字符串格式如:[10, 20, 50, 34, 100](只考虑整数数组,且只考虑一维数组)
②请提供这样一个工具方法getAerage,用于返回平均分,平均值为去掉最低分和最高分后的分值,(只考虑浮点型数组,且只考虑一维数组)
③定义一个测试类TestDemo,调用该工具类的工具方法,并返回结果。
实施步骤
①首先在TestDemo类中定义好用于调取的整型数组arr和浮点型数组arr2
package Test;
public class TestDemo {
public static void main(String[] args) {
int[] arr={10,20,30,40,50};
double[] arr2={10.0,20.0,30.0};
System.out.println(ArraysUtils.toString(arr));
System.out.println(ArraysUtils.getAerage(arr2));
}
}
②定义好测试类ArraysUtils,并将构造器私有,然后编写题目中的两个方法,将其用static修饰
package Test;
public class ArraysUtils {
//私有化构造器
private ArraysUtils() {
}
//静态方法
public static String toString(int[] arr) {
if (arr != null) {
//判断是不是空数组
String result = "[";
for (int i = 0; i < arr.length; i++) {
result += (i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
result += "]";
return result;
} else {
return null;
}
}
//静态方法
public static double getAerage(double[] arr) {
//1.定义好相关变量并初始化
double sum = 0;
double max = arr[0];
double min = arr[0];
double ave = 0;
//2.利用循环找出最大值和最小值
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
//3.将数组中所有的值相加
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
//4.相加的和 sum减去最大值和最小值 除以数组长度-2
ave = (sum - max - min) / (arr.length - 2);
return ave;
}
}