java用list集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作
需求
鍵盤(pán)輸入五名學(xué)生信息并錄入list集合;
輸出每個(gè)學(xué)生的信息,計(jì)算并輸出這五個(gè)學(xué)生Java語(yǔ)言成績(jī)的平均值;
計(jì)算并輸出他們Java語(yǔ)言成績(jī)的最大值和最小值。
思路
用Scanner 鍵盤(pán)輸入
用for循環(huán)依次錄入學(xué)生信息
用for循環(huán)輸出學(xué)生信息
用for循環(huán)拿出學(xué)生成績(jī)并求出成績(jī)平均分
代碼
補(bǔ)充知識(shí):java 計(jì)算平均值,去除不合理的數(shù)據(jù)
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
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è)參考,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)學(xué)生成績(jī)檔案管理系統(tǒng)
- Java?GUI實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- java學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- java實(shí)現(xiàn)學(xué)生成績(jī)錄入系統(tǒng)
- Java模擬登錄正方教務(wù)抓取成績(jī)、課表、空教室
- Eclipse+Java+Swing實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)的實(shí)例代碼
- Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- java實(shí)現(xiàn)學(xué)生成績(jī)信息管理系統(tǒng)
- Java利用條件運(yùn)算符的嵌套來(lái)完成學(xué)習(xí)成績(jī)的劃分
- java實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)檔案管理系統(tǒng)
相關(guān)文章
java 使用過(guò)濾器實(shí)現(xiàn)登錄攔截處理
這篇文章主要介紹了java 使用過(guò)濾器實(shí)現(xiàn)登錄攔截處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作
在本篇文章里小編給大家整理了一篇關(guān)于Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作,有興趣的朋友們可以學(xué)習(xí)參考下。2021-03-03Java基礎(chǔ)之引用相關(guān)知識(shí)總結(jié)
今天聊聊Java的引用,大多數(shù)時(shí)候我們說(shuō)引用都是強(qiáng)引用,只有在對(duì)象不使用的情況下才會(huì)釋放內(nèi)存,其實(shí)Java 內(nèi)存有四種不同的引用.一起看看吧,,需要的朋友可以參考下2021-05-05Java使用volatile關(guān)鍵字的注意事項(xiàng)
volatile關(guān)鍵字是Java中的一種稍弱的同步機(jī)制,為什么稱(chēng)之為弱機(jī)制。這篇文章主要介紹了Java使用volatile關(guān)鍵字的注意事項(xiàng),需要的朋友可以參考下2017-02-02SpringBoot CommandLineRunner的異步任務(wù)機(jī)制使用
這篇文章主要介紹了SpringBoot CommandLineRunner的異步任務(wù)機(jī)制使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Java8中List轉(zhuǎn)Map(Collectors.toMap) 的技巧分享
在最近的工作開(kāi)發(fā)之中,慢慢習(xí)慣了很多Java8中的Stream的用法,很方便而且也可以并行的去執(zhí)行這個(gè)流,這篇文章主要給大家介紹了關(guān)于Java8中List轉(zhuǎn)Map(Collectors.toMap) 的相關(guān)資料,需要的朋友可以參考下2021-07-07java如何實(shí)現(xiàn)項(xiàng)目啟動(dòng)時(shí)執(zhí)行指定方法
這篇文章主要為大家詳細(xì)介紹了java項(xiàng)目如何啟動(dòng)時(shí)執(zhí)行指定方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07