1. 程式人生 > >對儲存資料進行月份分組顯示

對儲存資料進行月份分組顯示

1.模擬資料

public class Bean {
    private String date;
    private double money;
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public double getMoney() {
        return money;
    }
    public void setMoney(double money) {
        this
.money = money; } @Override public String toString() { return "Bean [date=" + date + ", money=" + money + "]"; } }
public class Data {

    //設定預設資料

    public static List<Bean> getDefaultData() {
        List<Bean> data = new ArrayList<Bean>();

        Bean bean1 =
new Bean(); bean1.setDate(System.currentTimeMillis() - 1000 + ""); data.add(bean1); bean1.setMoney(20.5); Bean bean2 = new Bean(); bean2.setDate(System.currentTimeMillis() - 1200 + ""); bean2.setMoney(60.5); data.add(bean2); Bean bean3 = new Bean(); bean3.
setDate(System.currentTimeMillis() - 1100 + ""); bean3.setMoney(30); data.add(bean3); Bean bean4 = new Bean(); bean4.setDate((System.currentTimeMillis() - 2010000000) + ""); bean4.setMoney(10.5); data.add(bean4); Bean bean5 = new Bean(); bean5.setDate(System.currentTimeMillis() - 2020000200 + ""); bean5.setMoney(80.5); data.add(bean5); Bean bean6 = new Bean(); bean6.setDate(System.currentTimeMillis() - 4003000000l + ""); bean6.setMoney(90); data.add(bean6); Bean bean7 = new Bean(); bean7.setDate(System.currentTimeMillis() - 19993000000l + ""); bean7.setMoney(1000); data.add(bean7); return data; } //根據月份排序 public static Map<String, List<Bean>> getFenZuData() { //使用map可以設定唯一的key Map<String, List<Bean>> mapData = new HashMap(); List<Bean> defaultData = getDefaultData(); for (int i = 0; i < defaultData.size(); i++) { String time = getYearMonthString(defaultData.get(i).getDate()); List<Bean> data = mapData.get(time); //進行判空,如果當前的map沒有添加當前key,新建一個List儲存資料 if (data == null) { data = new ArrayList(); data.add(defaultData.get(i)); mapData.put(time, data); } else { //已經新增,就往原List資料中新增新的資料 data.add(defaultData.get(i)); } } return mapData; } //獲取月年的資料格式 public static String getYearMonthString(String time) { SimpleDateFormat df = new SimpleDateFormat("MM/yyyy"); String ymTime = df.format(new Date(Long.parseLong(time))); return ymTime; } }

進行排序顯示

Map<String, List<Bean>> mapData = Data.getFenZuData();
        List<Bean> newData = new ArrayList<>();
        Set<String> s = mapData.keySet();
        Iterator<String> it = s.iterator();
        String key;
        List<Bean> value;
        for (Map.Entry<String, List<Bean>> entry : mapData.entrySet()) {
            key = entry.getKey();
            value = entry.getValue();
            System.out.println(key + ":\t" + value);
            Bean bean = new Bean();
            double money = 0;
            for(Bean b :value){
                money+=b.getMoney();
            }
            bean.setDate(key);
            bean.setMoney(money);
            newData.add(bean);
        }

        System.out.println("新資料:"+newData.toString());


        //排序,對字串判斷排序
        Collections.sort(newData, new Comparator<Bean>() {

            @Override
            public int compare(Bean o1, Bean o2) {
                String beanStr1 = o1.getDate();
                String beanStr2 = o2.getDate();
                //年份相同按照月份有大到下排序
                if(pasreYear(beanStr1).equals(pasreYear(beanStr2))){
                    return pasreMonth(beanStr2).compareTo(pasreMonth(beanStr1));
                }else{
                //年份不同同按照年份有大到下排序
                    return pasreYear(beanStr2).compareTo(pasreYear(beanStr1));
                }

            }
        });

        System.out.println("排序資料:"+newData.toString());
    }
//解析年份
    private static String pasreYear(String str){
        String newStr = "";
        if(str.contains("/")){
            newStr = str.split("/")[1];
            return newStr;
        }
        return null;
    }
    //解析月份
private static String pasreMonth(String str){

    String newStr = "";
    if(str.contains("/")){
        newStr = str.split("/")[0];
        return newStr;
    }
    return null;
    }

相關推薦

儲存資料進行月份分組顯示

1.模擬資料 public class Bean { private String date; private double money; public String getDate() { return date;

mysql 資料進行求和分組並在結果中篩選符合條件的資料 having group by count

查詢table表查詢每一個班級中年齡大於20,性別為男的人數 select COUNT(*)as '大於20歲人數',classid  from Table1 where sex='男' group by classid,age having age>20 --需

C#,WPF中使用多文字顯示資料,並資料進行關鍵字高亮等操作

需求:針對多文字資訊顯示,我們需要對其內容中的某些關鍵字或者某行進行高亮顯示,並用不同顏色顯示。 分析:在C#中,首先要進行多文字資訊顯示,可以RichTextBox(不要使用TextBox)控制元件,該控制元件由自動換行等功能,具體程式碼如下: /// <summary> /// 向

MySQL資料庫資料進行復制的基本過程詳解

MySQL對資料庫資料進行復制的基本過程詳解 這篇文章主要介紹了MySQL對資料庫資料進行復制的基本過程,解讀了Slave的一些相關配置,需要的朋友可以參考下 複製 複製是從一個MySQL伺服器(master)將資料拷貝到另外一臺或多臺MySQL伺服器(slaves)的過程.複製是非同步進行的--sla

C#Json資料進行序列化

json格式:我們常見的josn格式資料字串有一般都是一對大括號({}),或者兩對大括號的。下面就這2種常見的json格式的資料介紹一些對json格式的操作。 先了解下,我說的2種json格式: 第一種格式有一對大括號的: 第二種有兩對大括號的: { \"code\"

Java字串資料進行MD5/SHA1雜湊雜湊運算

package cn.aibo.test;      import java.security.MessageDigest;   import java.security.NoSuchAl

[譯]使用遞迴神經網路(LSTMs)時序資料進行預測

原文地址:A Guide For Time Series Prediction Using Recurrent Neural Networks (LSTMs) 原文作者:Neelabh Pant 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold-m

TensorFlow-cifar訓練與測試(可自己資料進行分類和測試)

第一部分:測試軟硬體 硬體:NVIDIA-GTX1080 軟體:Windows7、python3.6.5、tensorflow-gpu-1.4.0 第二部分:資料下載 資料集下載連結 第三部分:程式碼分步展示 第一步:匯入tensorflow import os fr

java 時間資料進行加操作

Date time = new Date(); Calendar cal = Calendar.getInstance(); if (time != null) { cal.setTime(time); cal.set(Calendar.HOUR_OF_DAY, 23); cal.se

原始資料進行標準化的模型,終端執行輸出結果反標準化

對於資料經過標準化後建立的模型,預測後的輸出也是標準化之後的。 在模型打包後,需要將之前標準化的引數也進行打包。這樣才能保證在終端執行model時輸出真實的結果。 標準化引數打包方法: from

dataframe 資料進行資料操作時發生TypeError: unsupported operand type(s) for /: 'str' and 'int'

相對dataframe中“最高價”列資料進行除以2操作, data = pd.DataFrame(PriceList,columns=['品名','規格','max1','平均價','最低價','產地','日期'],index=range(1,len(PriceLi

將Excel表中的資料 轉換成XML 並XML資料進行讀取

EXCEL 轉換成 XML 工具類 using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Xml; usi

MapReduce資料進行排序的實踐

從一個小的例子開始: Map和reduce之間的shuffle(洗牌)是將key值相同的放在一塊,sort(排序)是按照key值進行排序.例如like出現了兩次,就會把like放在一起.you也是.然後根據key值進行按照字典的順序進行排序.下面我想將下面的資料按照時間進行排序,並且ID相

運用spring監聽器 頁面資料進行初始化

最近在做一個個人部落格的demo,部落格首頁需要很多的資訊,比如博主的資訊,部落格類別的資訊,按照時間對部落格進行分組等資訊.這些資訊一般情況下都是靜態的,除非進入後臺對這些資訊進行修改. 今天在搜尋資料時搜尋到了一種方法,可以運用在頁面初始化資訊上. 就是利用 spri

用js裡的sort()json資料進行排序

 上示圖片是W3School對Javascript sort()的說明。既然可以對Array進行排序,那對於我們從後臺接收到json資料如何進行相同的排序呢?讓我們來看這樣一段json資料。 排序後 : 讓我們對這個json檔案按照value進行排序,並將排序

餐飲資料進行處理基於Python

對餐飲資料進行處理基於Python 餐飲網頁資料來源 #coding:utf-8 # 匯入必要的模組 import pandas as pd import numpy as np import re # 讀取網頁資料來源 df = pd.read_csv(url,deli

如何: JSON 資料進行序列化和反序列化

JSON(JavaScript 物件符號)是一種高效的資料編碼格式,可用於在客戶端瀏覽器和支援 AJAX 的 Web 服務之間快速交換少量資料。 本主題演示如何使用 DataContractJsonSerializer 將 .NET 型別物件序列化為 JSON 編碼資料,然

資料進行(置頂,上移,下移,置底操作)---資料庫sql

這兩天一直在做社群論壇的帖子的(置頂,上移,下移,置底操作),下面是個人心得: -- 上一條:select * from 表 where 資料id<@當前顯示資料id order by 資料

資料之使用hadoop海量資料進行統計並排序

不得不說,Hadoop確實是處理海量離線資料的利器,當然,凡是一個東西有優點必定也有缺點,hadoop的缺點也很多,比如對流式計 算,實時計算,DAG具有依賴關係的計算,支援都不友好,所以,由此誕生了很多新的分散式計算框 架,Storm,Spark,Tez,impala,

rmanoralce資料進行全備份

第一:登入rman 執行rman target / 可進入rman 第二:檢視和刪除備份 進入rman後 執行list backup命令 可以看到所有的備份集,以及存放目錄 執行delete backupset bsid 可以刪除某一個備份 bsid 是備份集的id,在