温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中使用list集合实现存储并计算平均成绩

发布时间:2020-11-09 15:40:17 来源:亿速云 阅读:660 作者:Leah 栏目:开发技术

本篇文章给大家分享的是有关java中使用list集合实现存储并计算平均成绩,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

需求

键盘输入五名学生信息并录入list集合;

输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值;

计算并输出他们Java语言成绩的最大值和最小值。

思路

用Scanner 键盘输入

用for循环依次录入学生信息

用for循环输出学生信息

用for循环拿出学生成绩并求出成绩平均分

代码

java中使用list集合实现存储并计算平均成绩

java中使用list集合实现存储并计算平均成绩

java中使用list集合实现存储并计算平均成绩

补充知识:java 计算平均值,去除不合理的数据

我就废话不多说了,大家还是直接看代码吧~

package com.ine.tool;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 计算平均值,去除不合理的数据
 * 
 * @author Ro
 * 
 */
public class AverageTool
{
  /**
   * 主方法
   */
  public static int getAverage(String str_int_arr)
  {
    int[] int_arr = stringToIntWhitSort(str_int_arr.split(","));
    if (1 < int_arr.length)
    {
      return getAverageByGoodList(getGoodListByBaseList(getBaseListByIntArray(int_arr)));
    }
    return Integer.parseInt(str_int_arr);
  }

  /**
   * 将String数组转换为int数组
   */
  private static int[] stringToIntWhitSort(String[] arrs)
  {
    int[] ints = new int[arrs.length];
    for (int i = 0; i < arrs.length; i++)
    {
      ints[i] = Integer.parseInt(arrs[i]);
    }

    Arrays.sort(ints);
    System.out.println("ints:" + Arrays.toString(ints));
    return ints;
  }

  /**
   * 将int数组根据计算的基准值按块分离
   */
  private static List<List<Integer>> getBaseListByIntArray(int[] int_arr)
  {
    List<List<Integer>> list = new ArrayList<List<Integer>>();
    list.add(new ArrayList<Integer>());

    int list_index = 0;
    int average_flag = 0;
    int sum_temp = 0;

    for (int i : int_arr)
    {
      sum_temp += i;
    }
    average_flag = sum_temp / int_arr.length;

    System.out.println("average_flag:" + average_flag);
    for (int i = 0; i < int_arr.length - 1; i++)
    {
      if (average_flag >= Math.abs(int_arr[i] - int_arr[i + 1]))
      {
        list.get(list_index).add(int_arr[i]);
      }
      else
      {
        list.get(list_index++).add(int_arr[i]);
        list.add(new ArrayList<Integer>());
      }

      if ((i + 2) == int_arr.length)
      {
        list.get(list_index).add(int_arr[i + 1]);
      }
    }
    System.out.println("getBaseListByIntArray:" + list.toString());
    return list;
  }

  /**
   * 筛选留下数据最多的块
   */
  private static List<List<Integer>> getGoodListByBaseList(
      List<List<Integer>> list)
  {
    if (1 < list.size())
      for (int i = 1; i < list.size(); i++)
      {
        if (list.get(0).size() != list.get(i).size())
        {
          if (list.get(0).size() < list.get(i).size())
          {
            list.remove(0);
          }
          else
          {
            list.remove(i);
          }
          i--;
        }
      }
    System.out.println("getGoodListByBaseList:" + list.toString());
    return list;
  }

  /**
   * 将块计算平均值,如果数据大于两位,则个位四舍五入
   */
  private static int getAverageByGoodList(List<List<Integer>> good_list)
  {
    int average = 0;
    int sum_temp = 0;
    int sum_index = 0;
    for (List<Integer> t_list : good_list)
    {
      for (int i : t_list)
      {
        sum_temp += i;
        sum_index += 1;
      }
    }
    average = sum_temp / sum_index;
    if (10 < average)
      average = (average + 5) / 10 * 10;
    return average;
  }
}

以上就是java中使用list集合实现存储并计算平均成绩,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI