亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在新創建的文件中獲得月份總數?

如何在新創建的文件中獲得月份總數?

一只名叫tom的貓 2019-04-10 14:15:43
我目前正在使用此選項3:下載統計信息來處理C語言如果用戶選擇此選項,程序將使用以下數據創建統計文件:a.  Power output sorted from lowest to highest b.  Day with highest output  c.  Total by month  d.  Average power output for all the data統計信息文件將與輸入文件具有相同的名稱,但附加了_stats.txt。例如,如果輸入文件名為data.txt,則stats文件將命名為data_stats.txt。我的數據文件包含January 10 2018 236.9January 11 2018 267.6January 12 2018 278.1January 13 2018 246.9January 14 2018 262.3January 15 2018 288.6February  2 2018 199.7February 3 2018 134.6February 4 2018 200.8February 5 2018 198.2March 9 2018 169.7March 10 2018 168.3March 11 2018 179.4當我運行C時,我的總功率是288.6,我如何獲得每個月的總和? public static void createStatsFile(ArrayList<Entry> uploadResults) {     ///////////////     ///////A///////     ///////////////     try {         PrintWriter writer = new PrintWriter("data_stat.txt", "UTF-8");         ArrayList<Entry> lowestToHighest = bubbleSort(uploadResults);         for(Entry entry : lowestToHighest) {             writer.print(                     "Month: " + entry.getMonth() + " Day: " + entry.getDay() + " Year: " + entry.getYear() + " Power Output: "                      + entry.getPowerOutput());             writer.print("\n");             entry.print();         }我的課:public class Entry {     //declaring variables     private String month;     private String day;     private String year;     private float powerOutput;     private String file;     private int[] MonthList;     String inputFile = file;     //Constructors     public Entry() {     }     public Entry(String m, String d, String y, float p) {         month = m;         day = d;         year = y;         powerOutput = p;     }     //creating print to call ArrayList in main     public void print() {         System.out.println("Month: " + month + " Day: " + day + " Year: " + year + " Power Output: " + powerOutput);     }     public static void getFile() {     }     public String getMonth() {         return month;     }
查看完整描述

2 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

您可以使用流來獲取所需結果的Map。

 Map<String, Double> collect = uploadResults.stream().collect(
            Collectors.groupingBy(Entry::getMonth, Collectors.summingDouble(Entry::getPowerOutput)));

工作

List<Entry> uploadResults = Arrays.asList(
        new Entry("January","10","2018",236.9f),
        new Entry("January","11","2018",267.6f),
        new Entry("January","12","2018",278.1f),
        new Entry("January","13","2018",246.9f),
        new Entry("January","14","2018",262.3f),
        new Entry("January","15","2018",288.6f),
        new Entry("February","2","2018",199.7f),
        new Entry("February","3","2018",134.6f),
        new Entry("February","4","2018",200.8f),
        new Entry("February","5","2018",198.2f),
        new Entry("March","9","2018",169.7f),
        new Entry("March","10","2018",168.3f),
        new Entry("March","11","2018",179.4f));Map<String, Double> collect = uploadResults.stream().collect(
        Collectors.groupingBy(Entry::getMonth, Collectors.summingDouble(Entry::getPowerOutput)));System.out.println(collect);

產量

{March=517.3999938964844, February=733.3000030517578, January=1580.3999938964844}

編輯:

對于Java8以下的版本,應該這樣做

Map<String, Float> monthMap = new HashMap<>();for (Entry uploadResult : uploadResults) {
    String month = uploadResult.getMonth();
    Float powerOutput = uploadResult.getPowerOutput();

    if( monthMap.containsKey(month) ){
        powerOutput += monthMap.get(month);
    }
    monthMap.put( month, powerOutput);}System.out.println(monthMap);


查看完整回答
反對 回復 2019-05-15
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

在這里,您可以在每個循環中初始化總和。

    Entry tempEntry = null;
    for(Entry entry: uploadResults) {
        float sum;
        sum =entry.getPowerOutput();
    }

float sum;在總和之前移動并添加到總和:

    Entry tempEntry = null;
    float sum = 0;
    for(Entry entry: uploadResults) {
        sum += entry.getPowerOutput();
    }


查看完整回答
反對 回復 2019-05-15
  • 2 回答
  • 0 關注
  • 535 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號