public class test {
public static void main(String[] args) { List<Bill> list = new test().setObject(); Set<String> set = new HashSet(); for (Bill bills : list) {
set.add(bills.getTradeTime().substring(0, 8));
} List list1 = new ArrayList();
int paySuccess = 0;
int dfSuccess = 0;
int fee = 0;
int count = 0;
//遍历set集合中的日期
for (String a : set) {
for (Bill bill : list) {
if (a.equals(bill.getTradeTime().substring(0, 8))) {
paySuccess += bill.getMoney();
fee += bill.getFee();
count++;
if ("承兑或交易成功".equals(bill.getType()))
dfSuccess += bill.getMoney();
}
}
Object[] objects = new Object[10];
objects[0] = new BigDecimal(paySuccess);
objects[1] = new BigDecimal(dfSuccess);
objects[2] = new BigDecimal(fee);
objects[3] = new BigDecimal(paySuccess-fee);
objects[4] = a;
list1.add(objects);
System.out.println("支付成功金额:" + objects[0] + "\t" + "承兑或交易成功: " + objects[1] + "\t" + objects[4] + "\t" + "手续费:" + objects[2] + "\t" + "商户结算" +
"金额:" + objects[3] + "\t" + "交易笔数:" + count + "\t日期:" + a);
paySuccess = 0;
dfSuccess = 0;
fee = 0;
count = 0;
}
String date = null;
System.out.println(date == null || date.isEmpty());
} public List<Bill> setObject() {
List<Bill> list = new ArrayList<Bill>();
Bill bill = new Bill();
bill.setTradeTime("201605050203");
bill.setMoney(2);
bill.setPayType("支付成功");
bill.setType("承兑或交易成功");
bill.setFee(1);
list.add(bill); bill = new Bill();
bill.setTradeTime("201605060203");
bill.setMoney(3);
bill.setType("");
bill.setPayType("支付成功");
bill.setFee(1);
list.add(bill); bill = new Bill();
bill.setMoney(4);
bill.setTradeTime("201605050203");
bill.setPayType("支付成功");
bill.setType("承兑或交易成功");
bill.setFee(1);
list.add(bill); bill = new Bill();
bill.setType("");
bill.setPayType("支付成功");
bill.setTradeTime("201605060203");
bill.setMoney(4);
bill.setFee(1);
list.add(bill);
return list;
}
} class Bill {
int money;
String type;
String tradeTime;
String payType;
int fee; public String getPayType() {
return payType;
} public void setPayType(String payType) {
this.payType = payType;
} public int getMoney() {
return money;
} public void setMoney(int money) {
this.money = money;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
} public String getTradeTime() {
return tradeTime;
} public void setTradeTime(String tradeTime) {
this.tradeTime = tradeTime;
} public int getFee() {
return fee;
} public void setFee(int fee) {
this.fee = fee;
} @Override
public String toString() {
return "Bill{" +
"money=" + money +
", type='" + type + '\'' +
", tradeTime='" + tradeTime + '\'' +
", payType='" + payType + '\'' +
'}';
}
}

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

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

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

  1. 使用java中的反射获得object对象的属性值

    知识点:使用java中的反射获得object对象的属性值 一:场景 这两天开发代码时,调用别人的后台接口,返回值为Object对象(json形式的),我想获得object中指定的属性值,没有对应的ge ...

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

    java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; imp ...

  3. eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?

    eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...

  4. 通过反射将一个java对象的属性值转换为一个Map

    将一个java对象的属性值转换为一个Map: import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.P ...

  5. Js数组对象的属性值升序排序,并指定数组中的某个对象移动到数组的最前面

    需求整理: 本篇文章主要实现的是将一个数组的中对象的属性值通过升序的方式排序,然后能够让程序可以指定对应的数组对象移动到程序的最前面. 数组如下所示: var arrayData= [{name: & ...

  6. JAVA 去除实体中类型为string的属性值中的空格

    前端传入的参数实体中,有时候会出现传入了一空格,导致操作失败,这时就可以利用java反射机制去除实体中类型为sting的属性值中的空格. java代码示例: package com.spyang.ut ...

  7. spring:为javabean的集合对象注入属性值

    spring:为JavaBean的集合对象注入属性值 在 spring 中可以对List.Set.Map 等集合进行配置,不过根据集合类型的不同,需要使用不同的标签配置对应相应的集合. 1.创建 Ts ...

  8. java中的string对象深入了解

    这里来对Java中的String对象做一个稍微深入的了解. Java对象实现的演进 String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以 ...

  9. Java中的Set对象去重

    前言部分 Set<T> 去重相信大家一定不陌生,尤其是在 Set<String>.Set<Integer> 等等,但是在使用 Set<实体> ,在不重写 ...

随机推荐

  1. TIJ——Chapter Seven:Reusing Classes

    Reusing Classes 有两种常用方式实现类的重用,组件(在新类中创建存在类的对象)和继承. Composition syntax Every non-primitive object has ...

  2. C/C++ 结构体 指针 简单输入输出

    #include <stdio.h> #include <stdlib.h> struct student{ int num; ]; double dec; }; int ma ...

  3. FileSaver.js ////////////////////zzzzzzzzzzzzzz

    FileSaver.js 实现浏览器端文件保存的 JavaScript 库 查看次数: 758 下载次数: 89 更新时间: 2015-06-05 发布时间: 2015-06-05 收藏 插件信息金币 ...

  4. 基础-DP

    Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...

  5. 利用spring boot创建java app

    利用spring boot创建java app 背景 在使用spring框架开发的过程中,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置和复杂的bean依赖关系,特别是在使用mvc的时候各 ...

  6. 镁光c400-MTFDDAK064M固态硬盘更新固件

    前段时间笔记本不停地假死机,就是那种系统停止响应,但鼠标依然有动作的死机,各种烦人,后来检测了下系统的温度,发现cpu轻易地上了75度,甚至会到94度,以为风扇该清理了,硅胶该换了,回想了一下,离上次 ...

  7. 【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别

    [<zw版·Halcon与delphi系列原创教程>zw_halcon人脸识别 经常有用户问,halcon人脸识别方面的问题. 可能是cv在人脸识别.车牌识别方面的投入太多了. 其实,人脸 ...

  8. Java线程间通信方式剖析——Java进阶(四)

    原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...

  9. ECshop后台角色权限的添加和分配

    1.在权限文件中配置 2.在需要加权限的文件中加入权限. 例如:d:\ecshop\admin\user_account.php 3.在数据库表 ecs_admin_action中配置 4.会员权限 ...

  10. JavaScript界面传值与前后台互调

    话说曾在校时,前端的第一门课程HTML静态网页设计,其老师,真是应了他的名字: 路遥知马力. 整个学期硬是全部在 Dreamwear 中进行拖拽控件来教学,未曾教授一句代码.成功忽悠了全体学生,课上一 ...