java用list集合存储学生信息并算出成绩平均值操作

 更新时间:2020年08月18日 08:39:19   作者:热爱java的小小白  
这篇文章主要介绍了java用list集合存储学生信息并算出成绩平均值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

需求

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

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

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

思路

用Scanner 键盘输入

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

用for循环输出学生信息

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

代码

补充知识: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集合存储学生信息并算出成绩平均值操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot执行有返回值的异步任务问题

    SpringBoot执行有返回值的异步任务问题

    这篇文章主要介绍了SpringBoot执行有返回值的异步任务问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • JVM内存管理之JAVA语言的内存管理详解

    JVM内存管理之JAVA语言的内存管理详解

    下面小编就为大家带来一篇JVM内存管理之JAVA语言的内存管理详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • SpringMVC自定义参数绑定实现详解

    SpringMVC自定义参数绑定实现详解

    这篇文章主要介绍了SpringMVC自定义参数绑定实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • C/C++和Java的交互详解

    C/C++和Java的交互详解

    本文旨在简单的介绍一下如何让java层和C/C++层相互调用,这里主要是使用了JNI技术,并没有深究其原理,只是做了个实现,其目的是为后面的学习打开一扇窗。
    2016-01-01
  • 带着新人看java虚拟机01(推荐)

    带着新人看java虚拟机01(推荐)

    这篇文章主要介绍了java虚拟机,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Java实现文件的归档和解档

    Java实现文件的归档和解档

    这篇文章主要为大家详细介绍了Java实现文件的归档和解档,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Java中String类(字符串操作)的10个常见问题和解决方法

    Java中String类(字符串操作)的10个常见问题和解决方法

    这篇文章主要介绍了Java中String类(字符串)操作的10个常见问题,需要的朋友可以参考下
    2014-04-04
  • Java框架入门之简单介绍SpringBoot框架

    Java框架入门之简单介绍SpringBoot框架

    今天给大家带来的是关于Java的相关知识,文章围绕着SpringBoot框架展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 基于Spring AOP的Log收集汇总

    基于Spring AOP的Log收集汇总

    张三针对公司现有日志处理系统的不足,采用了SpringAOP技术和Redis存储,设计并实现了一个性能更高效的日志处理系统,该系统通过SpringAOP的切面拦截功能,捕获方法调用信息作为日志内容,并将其统一格式化后存储到Redis中
    2024-10-10
  • 在Java SE上使用Headless模式的超级指南

    在Java SE上使用Headless模式的超级指南

    这篇文章主要介绍了在Java SE上使用Headless模式的超级指南,文中介绍了Headless模式实际使用的各种技巧,极力推荐!需要的朋友可以参考下
    2015-07-07

最新评论