代码小白在努力学习 2022-10-27 09:20 采纳率: 42.9%
浏览 155
已结题

编写一个数组的工具类:ArraysUtils

需求:在实际开发中,经常会遇到一些数组使用的工具类。请按照如下要求编写一个数组的工具类: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

  • 写回答

1条回答 默认 最新

  • 知虚 2022-10-27 09:52
    关注
    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));
        }
    
    }
    

    效果:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 10月27日

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题