java用list集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作
需求
鍵盤輸入五名學(xué)生信息并錄入list集合;
輸出每個(gè)學(xué)生的信息,計(jì)算并輸出這五個(gè)學(xué)生Java語言成績(jī)的平均值;
計(jì)算并輸出他們Java語言成績(jī)的最大值和最小值。
思路
用Scanner 鍵盤輸入
用for循環(huán)依次錄入學(xué)生信息
用for循環(huán)輸出學(xué)生信息
用for循環(huán)拿出學(xué)生成績(jī)并求出成績(jī)平均分
代碼
補(bǔ)充知識(shí):java 計(jì)算平均值,去除不合理的數(shù)據(jù)
我就廢話不多說了,大家還是直接看代碼吧~
package com.ine.tool;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 計(jì)算平均值,去除不合理的數(shù)據(jù) * * @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數(shù)組轉(zhuǎn)換為int數(shù)組 */ 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數(shù)組根據(jù)計(jì)算的基準(zhǔn)值按塊分離 */ 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; } /** * 篩選留下數(shù)據(jù)最多的塊 */ 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; } /** * 將塊計(jì)算平均值,如果數(shù)據(jù)大于兩位,則個(gè)位四舍五入 */ 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集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))2. python裝飾器三種裝飾模式的簡(jiǎn)單分析3. python web框架的總結(jié)4. 詳解Python模塊化編程與裝飾器5. Python實(shí)現(xiàn)迪杰斯特拉算法過程解析6. html小技巧之td,div標(biāo)簽里內(nèi)容不換行7. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式8. Python如何進(jìn)行時(shí)間處理9. python logging 重復(fù)寫日志問題解決辦法詳解10. python使用ctypes庫調(diào)用DLL動(dòng)態(tài)鏈接庫
