Java中List根据对象的属性值进行数据库group by功能的操作

  1 public class test {
  2     public static void main(String[] args) {
  3
  4         List<Bill> list = new test().setObject();
  5
  6         Set<String> set = new HashSet();
  7
  8         for (Bill bills : list) {
  9             set.add(bills.getTradeTime().substring(0, 8));
 10         }
 11
 12         List list1 = new ArrayList();
 13         int paySuccess = 0;
 14         int dfSuccess = 0;
 15         int fee = 0;
 16         int count = 0;
 17         //遍历set集合中的日期
 18         for (String a : set) {
 19             for (Bill bill : list) {
 20                 if (a.equals(bill.getTradeTime().substring(0, 8))) {
 21                     paySuccess += bill.getMoney();
 22                     fee += bill.getFee();
 23                     count++;
 24                     if ("承兑或交易成功".equals(bill.getType()))
 25                         dfSuccess += bill.getMoney();
 26                 }
 27             }
 28             Object[] objects = new Object[10];
 29             objects[0] = new BigDecimal(paySuccess);
 30             objects[1] = new BigDecimal(dfSuccess);
 31             objects[2] = new BigDecimal(fee);
 32             objects[3] = new BigDecimal(paySuccess-fee);
 33             objects[4] = a;
 34             list1.add(objects);
 35             System.out.println("支付成功金额:" + objects[0] + "\t" + "承兑或交易成功: " + objects[1] + "\t" + objects[4] + "\t" + "手续费:" + objects[2] + "\t" + "商户结算" +
 36                     "金额:" + objects[3] + "\t" + "交易笔数:" + count + "\t日期:" + a);
 37             paySuccess = 0;
 38             dfSuccess = 0;
 39             fee = 0;
 40             count = 0;
 41         }
 42         String date = null;
 43         System.out.println(date == null || date.isEmpty());
 44     }
 45
 46     public List<Bill> setObject() {
 47         List<Bill> list = new ArrayList<Bill>();
 48         Bill bill = new Bill();
 49         bill.setTradeTime("201605050203");
 50         bill.setMoney(2);
 51         bill.setPayType("支付成功");
 52         bill.setType("承兑或交易成功");
 53         bill.setFee(1);
 54         list.add(bill);
 55
 56         bill = new Bill();
 57         bill.setTradeTime("201605060203");
 58         bill.setMoney(3);
 59         bill.setType("");
 60         bill.setPayType("支付成功");
 61         bill.setFee(1);
 62         list.add(bill);
 63
 64         bill = new Bill();
 65         bill.setMoney(4);
 66         bill.setTradeTime("201605050203");
 67         bill.setPayType("支付成功");
 68         bill.setType("承兑或交易成功");
 69         bill.setFee(1);
 70         list.add(bill);
 71
 72         bill = new Bill();
 73         bill.setType("");
 74         bill.setPayType("支付成功");
 75         bill.setTradeTime("201605060203");
 76         bill.setMoney(4);
 77         bill.setFee(1);
 78         list.add(bill);
 79         return list;
 80     }
 81 }
 82
 83 class Bill {
 84     int money;
 85     String type;
 86     String tradeTime;
 87     String payType;
 88     int fee;
 89
 90     public String getPayType() {
 91         return payType;
 92     }
 93
 94     public void setPayType(String payType) {
 95         this.payType = payType;
 96     }
 97
 98     public int getMoney() {
 99         return money;
100     }
101
102     public void setMoney(int money) {
103         this.money = money;
104     }
105
106     public String getType() {
107         return type;
108     }
109
110     public void setType(String type) {
111         this.type = type;
112     }
113
114     public String getTradeTime() {
115         return tradeTime;
116     }
117
118     public void setTradeTime(String tradeTime) {
119         this.tradeTime = tradeTime;
120     }
121
122     public int getFee() {
123         return fee;
124     }
125
126     public void setFee(int fee) {
127         this.fee = fee;
128     }
129
130     @Override
131     public String toString() {
132         return "Bill{" +
133                 "money=" + money +
134                 ", type=‘" + type + ‘\‘‘ +
135                 ", tradeTime=‘" + tradeTime + ‘\‘‘ +
136                 ", payType=‘" + payType + ‘\‘‘ +
137                 ‘}‘;
138     }
139 }

我的思路是先用set集合对对象的某个属性中不重复的值进行筛选,然后进行计算

如果有更好的方法请在下面留言!

时间: 2024-10-29 19:05:59

Java中List根据对象的属性值进行数据库group by功能的操作的相关文章

java 反射实现不同对象相同属性值复制

1.此方法会过滤final字段 2.此方法会过滤对象字段 3.此方法会兼容同对象之间.不同对象之间属性值复制 package com.bin.design.util; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.List; import com.bin.des

利用反射机制,对对象的属性值进行自动设置

import java.lang.reflect.Method; /** * 对象的属性值自动设置,利用反射机制 */ public class AutoSet { /** * 将源对象的属性值赋值到目标对象,属性名一致,且源对象有get方法,目标对象有set方法 * @param src 源对象 * @param target 目标对象 * @return 赋值后的目标对象 */ public static Object autoGetterAndSetter(Object src, Obje

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

【java】【反射】反射实现判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更

java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; import java.lang.reflect.Field; import java.util.*; /** * @ClassName Test * @Description 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 * @Author sxd

使用Java对两个对象的属性进行拷贝

最近和Java的反射打交道比较多一点,可能是因为自己以后的方向是架构师的缘故吧,他们主要搞业务.我能也就搞架构,整天画一些流程图. 虽然对于只有一年实习经验的我,不知道这样是否好,但是我还是那句话,不论好坏,先走着,毕竟也能学到很多东西,而且还可以锻炼自己的思维能力. 表达能力,因为自己的产品做的再好,你就是表达不出来,说不出来优势,那么你就败了. 先创建一个实体类User package com.mine.practice.copyproperty.entity; /** * * @autho

JAVA中的反射只获取属性的get方法

JAVA中的反射只获取属性的get方法 在开发过程中,我们经常需要获取类中某些属性的get方法,此时我们需要使用到反射,例如,我们在获得一个对象后,需要知道该对象的哪些属性有值,哪些没有值,方便我们后面的处理. 譬如在我们拼SQL语句时,就需要知道哪些字段为空或为NULL,此时我们在拼语句的时候需要剔除掉,若是我们采用一般的判断的办法,则会很复杂(需要处理好SQL中的AND关键字的有无 ),当然,我们也有另外的解决办法(例如将非空的键和值存入map中,再将map存入list集合中,然后循环集合做

JQuery 操作对象的属性值

通过JQuery去操作前台对象(div,span...)的属性是很常见的事情,本文就简单的介绍几种操作情形. 1):通过属性值去获取对象 2):用JQuery去修改对象的属性值 3):获取并修改对象的Style的属性值 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src=&quo

获取JSON对象的属性值

1.问题背景 有一个json对象,其中有键值对,那怎样获取json对象中属性值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

更改一个页面对象的属性值

#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : [email protected] """ #更改一个页面对象的属性值 from selenium import webdriver import unittest def addAtttribute(driver,elementObj,attributeName,value): #封装向