Java中List根据对象的属性值进行数据库group by功能的操作
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功能的操作的更多相关文章
- 使用java中的反射获得object对象的属性值
知识点:使用java中的反射获得object对象的属性值 一:场景 这两天开发代码时,调用别人的后台接口,返回值为Object对象(json形式的),我想获得object中指定的属性值,没有对应的ge ...
- 【java】【反射】反射实现判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更
java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; imp ...
- eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...
- 通过反射将一个java对象的属性值转换为一个Map
将一个java对象的属性值转换为一个Map: import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.P ...
- Js数组对象的属性值升序排序,并指定数组中的某个对象移动到数组的最前面
需求整理: 本篇文章主要实现的是将一个数组的中对象的属性值通过升序的方式排序,然后能够让程序可以指定对应的数组对象移动到程序的最前面. 数组如下所示: var arrayData= [{name: & ...
- JAVA 去除实体中类型为string的属性值中的空格
前端传入的参数实体中,有时候会出现传入了一空格,导致操作失败,这时就可以利用java反射机制去除实体中类型为sting的属性值中的空格. java代码示例: package com.spyang.ut ...
- spring:为javabean的集合对象注入属性值
spring:为JavaBean的集合对象注入属性值 在 spring 中可以对List.Set.Map 等集合进行配置,不过根据集合类型的不同,需要使用不同的标签配置对应相应的集合. 1.创建 Ts ...
- java中的string对象深入了解
这里来对Java中的String对象做一个稍微深入的了解. Java对象实现的演进 String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以 ...
- Java中的Set对象去重
前言部分 Set<T> 去重相信大家一定不陌生,尤其是在 Set<String>.Set<Integer> 等等,但是在使用 Set<实体> ,在不重写 ...
随机推荐
- Java学习手记1——集合
一.什么是集合 集合是对象的集合,就像数组是数的集合.集合是一种容器,可以存放对象(可以是不同类型的对象). 二.集合的优点(为什么要用集合) 当然,在java里,可以使用数组来存放一组类型相同的对象 ...
- Android隐藏状态栏、导航栏
Android隐藏状态栏.导航栏 private void hideStatusNavigationBar(){ if(Build.VERSION.SDK_INT<16){ this.getWi ...
- excel手机号码归属地批量公式查询 vlookup函数
Excel手机号码归属地 批量公式查询 vlookup函数 xls 手机号码 添加一列 地区归属地 使用 公式:=(VLOOKUP(LEFT(B2,7),号段数据库!B:D,2,0)& ...
- diff输出格式解析
1 命令格式 $diff <变动之前的文件> <变动之后的文件> 2 diff文件的三种格式 normal diff context diff unified diff 3 示 ...
- PHPExcel导出功能
对于第一次弄这个导出,总结下思路: 1.下载在http://phpexcel.codeplex.com/下载最新PHPExcel放到Vendor下,注意位置:ThinkPHP\Extend\Vendo ...
- c# winform 调用js
1. 在winform中加入一个 WebBrowser 控件: 2. webBrowser控件加载html文件,html文件中包含了js代码, 代码如下(必须在 InitializeComponent ...
- [转]SSAS没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) (Microsoft Visual Studio)的解决办法
转自:http://www.cnblogs.com/xvqm00/archive/2011/07/15/2107338.html 打开SSAS 数据源视图浏览数据时,提示 没有注册类别 (异常来自 H ...
- UI图标资源搜索
下面这些网站可以搜索图标资源,方面界面制作: 分享下http://www.tutorialcadet.com/20-user-interface-icon-sets-for-developers/下面 ...
- Java中ProcessBuilder应用实例
系列说明 浅析Java.lang.Runtime类 浅析Java.lang.Process类 浅析Java.lang.ProcessBuilder类 可以使用java中的ProcessBuilder执 ...
- PowerDesigner设计Name和Comment 替换
这两天在用powerdesigner设计数据库.一直以为name就是注释名字来着.后来生成sql语句 怎么就没有注释信息那. 后来看了半天才知道自己范2了. 通过各种信息查找.大多都是改databas ...