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<实体> ,在不重写 ...
随机推荐
- My 1st webUI try
1. Add three control to the UI: StartTime EndTime Weekdays: 2015-11-17 20:26:40 data-model: Html5在ht ...
- 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)
http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...
- Android中使用Handler造成内存泄露的分析和解决
什么是内存泄露?Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收.也就是说,一个对象不被任何引用所指向 ...
- Android--RecyclerView的封装使用
1,用了很长一段时间的RecyclerView,在项目中用的频率也越来越频繁(因为踩得坑也越来越多了),或过头来看,感觉一直在写RecyclerView.Adapter中的三个方法和一个内部类,感觉很 ...
- BufferedReader与BufferedWriter读写中文乱码问题
正常读写英文时用""""没问题 FileReader fre = new FileReader("E:\\TEST\\readText.txt&quo ...
- asp.net MVC3 无法打开项目文件“E:\我们的项目\Project\HeatingMIS.Web\HeatingMIS.Web.csproj”。此安装不支持该项目类型。
在vs中打开mvc3项目,虽然装了mvc3,但是还是会遇到莫名其妙的错误,这是我在做开发的时候遇到的一个问题,附带解决方案,和大家分享一下 问题描述:无法打开项目文件“E:\我们的项目\Project ...
- asp.net XMLHttpRequest 进度条以及lengthComputable always false的解决办法
一直用ajax好长时间了,对其原理也有一些了解,最近由于项目需要,使用ajax异步进度条的效果,就研究了一下,用原生的XMLHttpRequest实现进度条函数,XMLHttpRequest有以下函数 ...
- 对属性NaN的理解纠正和对Number.isNaN() 、isNaN()方法的辨析
1.属性NaN的误解纠正 NaN (Not a Number)在w3c 中定义的是非数字的特殊值 ,它的对象是Number ,所以并不是任何非数字类型的值都会等于NaN,只有在算术运算或数据类型转换出 ...
- PL/SQL Developer连接Oracle 11g在Win8 64位系统下乱码
PL/SQL Developer在64位系统上连接Oracle,需要安装32位Oracle client客户端,使用后,发现操作数据库出现乱码的情况.经过查找资料,解决此问题,方法如下: 需要在系统的 ...
- java equals和==的区别
大概说equals和==都比较的是什么: 1. boolean tem = a == b; 首先==比较的肯定是地址,从堆栈的角度说也就是说==比较的是栈上面的内容.因为栈是用来存放地址或是java中 ...