实体类:

package org.jimmy.autosearch2019.pojo;

import java.math.BigDecimal;

public class TestEntity20190402 {

    private Integer time;
private BigDecimal discountMoney; public Integer getTime() {
return time;
}
public void setTime(Integer time) {
this.time = time;
}
public BigDecimal getDiscountMoney() {
return discountMoney;
}
public void setDiscountMoney(BigDecimal discountMoney) {
this.discountMoney = discountMoney;
} }

业务扣减类:

package org.jimmy.autosearch2019.test;

import java.math.BigDecimal;
import java.util.ArrayList; import org.jimmy.autosearch2019.pojo.TestEntity20190402; /**
* @author ラピスラズリ(Dawn)
* @date 2019年4月2日 上午11:15:39
* @detail 循环扣减demo
*/
public class Test20190402 { public static ArrayList<TestEntity20190402> list = new ArrayList<TestEntity20190402>(); static {
TestEntity20190402 testEntity = new TestEntity20190402();
testEntity.setTime(1);
testEntity.setDiscountMoney(new BigDecimal(100));
list.add(testEntity);
testEntity = new TestEntity20190402();
testEntity.setTime(5);
testEntity.setDiscountMoney(new BigDecimal(10));
list.add(testEntity);
testEntity = new TestEntity20190402();
testEntity.setTime(3);
testEntity.setDiscountMoney(new BigDecimal(20));
list.add(testEntity);
testEntity = new TestEntity20190402();
testEntity.setTime(2);
testEntity.setDiscountMoney(new BigDecimal(50));
list.add(testEntity);
} public static void main(String[] args) {
sort();
TestEntity20190402 getMiniTestEntity = getMiniTimeTestEntity();
BigDecimal total = new BigDecimal(155);
ArrayList<TestEntity20190402> tempList = new ArrayList<TestEntity20190402>();
while((total = total.subtract(getMiniTestEntity.getDiscountMoney())).intValue() > 0) {
tempList = new ArrayList<TestEntity20190402>();
for(int i = 1; i < list.size(); i++) {
tempList.add(list.get(i));
}
list = tempList;
getMiniTestEntity = getMiniTimeTestEntity();
}
BigDecimal currentDiscountMoney = null;
if(total.intValue() < 0) {
total = total.add(getMiniTestEntity.getDiscountMoney());
currentDiscountMoney = getMiniTestEntity.getDiscountMoney();
}
System.out.println(total.intValue());
System.out.println(currentDiscountMoney.intValue());
} public static TestEntity20190402 getMiniTimeTestEntity() {
/*for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getTime() + "," + list.get(i).getDiscountMoney());
}*/
//获取第一个就是时间最早的
TestEntity20190402 testEntity = list.get(0);
return testEntity;
} public static void sort() {
for(int i = 0; i < list.size(); i++) {
for(int j = i + 1; j < list.size(); j++) {
TestEntity20190402 outerTestEntity = list.get(i);
TestEntity20190402 innerTestEntity = list.get(j);
if(innerTestEntity.getTime() < outerTestEntity.getTime()) {
list.set(i, innerTestEntity);
list.set(j, outerTestEntity);
}
}
}
} }

最新文章

  1. Slick – 这是你需要的最后一款 jQuery 传送带插件
  2. MySQL 5.6 Threadpool(优先队列)介绍及性能测试【转】
  3. Java防盗链机制
  4. iOS-UISegmentedControl-隐藏边框
  5. CSS标签选择器(二)
  6. ServiceStack.OrmLite 6 学习笔记 查
  7. linux笔记:linux常用命令-链接命令
  8. asp.net 代码 注意点
  9. postgresql downgrade issue
  10. Mysql统计同一字段不同值的个数
  11. 深度优化LNMP之PHP (转)
  12. Behavioral模式之Observer模式
  13. 【CNMP系列】CentOS7.0下安装Nginx服务
  14. mysql启动日志文件log_bin
  15. 将AE开发的专题图制作功能发布为WPS
  16. SharePoint2007使用WebPart加载UserControl
  17. Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo
  18. python manage.py syncdb Unknown command: &#39;syncdb&#39;问题解决方法
  19. 实现一个 Virtual DOM 算法
  20. [转]Spring MVC 教程,快速入门,深入分析

热门文章

  1. .NETFramework:Cache
  2. docker安装-卸载
  3. 死记硬背之Bunside
  4. 007--linux常用命令nginx和nfs服务
  5. k-means 算法介绍
  6. E20180327-hm
  7. 与adb相关的问题,比如掉线问题、Android Studio 提示Session &#39;app&#39;:Error Installing APK、找不到设备
  8. 最小公倍数的最小和(Minimum Sum LCM )
  9. Hexo瞎折腾系列(5) - 使用hexo-neat插件压缩页面静态资源
  10. PostgreSQL - 官方手册、中文手册及Github项目地址