图片说明:
上面是一个数组,存储着某个类的多个对象.
对象结构:
//中奖数据对象
public class BonusItemNew {
private String ticketID;//票ID
private int playType;//彩票种类
private double money;//中奖金额
private int size;//中奖注数
private int bonusLevel;//中奖等级
private boolean isBombBonus;//是否大奖
private String content;//投注内容
private String bonusNumber;//中奖号码
....
}
功能要求:
将数据结构中对象ticketID相等的对象的中奖金额相加,奖金等级合并。
算法实现:
/**
* 按照业务要求的规则组装中奖数据
* 1.同一票的奖金money求和
* 2.奖金等级bonusLevel字符串相加
* 3.相同等级的奖金的size字符串相加
*
* @param itemSet 中奖数据对象集合
* @return
*/
public List bonusItemHandler(Set itemSet){
itemListInit = new ArrayList();
List itemRSList = new ArrayList();
Object[] itemArray = itemSet.toArray();
if(itemSet.size() > 0){
for(int i = 0; i < itemArray.length; i++){//遍历数组
BonusItemNew itemNew = new BonusItemNew();
itemNew.setTicketID(((BonusItem)itemArray[i]).getTicketID());
itemNew.setMoney(((BonusItem)itemArray[i]).getMoney());
itemNew.setBonusLevel(((BonusItem)itemArray[i]).getBonusLevel());
itemNew.setSize(((BonusItem)itemArray[i]).getSize());
itemNew.setContent(itemNew.getSize() + "注" + itemNew.getBonusLevel() + "等奖\n");
itemListInit.add(itemNew);
}
for(int i = 0; i < itemListInit.size(); i++){
BonusItemNew itemNewI = (BonusItemNew)itemListInit.get(i);
double money = itemNewI.getMoney();
for(int j = i + 1; j < itemListInit.size(); j++){//从下一个开始比较
BonusItemNew itemNewJ = (BonusItemNew)itemListInit.get(j);
if(i != j && itemNewI.getTicketID().equals(itemNewJ.getTicketID())){//中奖票ID相同,则中奖金额相加
money += itemNewJ.getMoney();
itemNewI.setContent(itemNewI.getContent() + itemNewJ.getContent());
itemNewI.setPlayType(itemNewI.getPlayType());
itemNewI.setMoney(money);
itemListInit.remove(j);
j -= 1;
}
}
itemRSList.add(itemNewI);
}
}
if(itemRSList != null && itemRSList.size() > 0){
for(Iterator it = itemRSList.iterator(); it.hasNext();){
BonusItemNew item = (BonusItemNew)it.next();
}
}
return itemListInit;
}
- 大小: 9.2 KB
分享到:
相关推荐
C++实现生成组合算法 在计算机科学和数学中,组合算法是一种常用的算法,用于生成所有可能的组合或子集。下面是 C++ 实现生成组合算法的详细介绍。 一、组合的基本概念 组合是指从一个集合中选出若干元素,按照...
排列组合是常见的数学问题,本文就以完整实例形式讲述了C#实现排列组合算法的方法。分享给大家供大家参考之用。具体方法如下: 首先,数学中排列组合,可表示为:排列P(N,R) 其实排列实现了,组合也就实现了,组合...
PHP实现多种类型的排列组合算法,PHP多种方式实现排列组合算法。非常有用,欢迎下载。
主要介绍了基于Vue实现电商SKU组合算法问题 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
本资源附带文档解释了排列组合算法的实现和原理。其中排列算法是基于递归实现的,组合算法是基于高效的位移法实现的。代码是使用Java版实现的。
Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客
该文档对排列组合问题的算法设计问题进行一系列讲述
这些讲义涵盖了算法,尤其是组合算法,其主要目标是创建正确且始终有效的算法。
组合算法,在VC中调试通过。改写了排列的一段代码, 可以完成组合功能。
排列组合算法实现,支持模板类。支持重复数的排列。算法采用递归方法,简单易懂。
基于C# 实现的组合算法,可实现对任意类型的数据进行n选m的组合, 比如数字,字符串,对象等。 n必须大于0小于Int.MaxValue
本程序是排列组合算法的c语言表示,使用递归实现
一种有效处理冲突的组合算法。Jousselme证据距离计算权重
计算机程序设计艺术:第4卷.第0册(双语版)组合算法与布尔函数概论
大师Donald E. Knuth(汉名高德纳)的著作,计算机程序设计与艺术第四卷0册:组合算法与布尔函数概论Combinatorial Algorithms and Boolean Functions(中英)
把15个梨分给5个人,每人最少2个,最多5个的组合算法,返回一个数组 - (NSArray *)createRandomArrayForCount:(NSInteger)aCount min:(NSInteger)aMin max:(NSInteger)aMax people:(NSInteger)aPeople
简单的组合算法,一个递归的应用示例,递归减少了很多代码
动态规划,分治算法,概率算法,模拟退火算法,搜索算法,贪婪算法,网上matlab,遗传算法,组合算法.
毕业设计:关联规则和决策树组合算法在学生成绩分析中的研究 毕业设计:关联规则和决策树组合算法在学生成绩分析中的研究 毕业设计:关联规则和决策树组合算法在学生成绩分析中的研究 毕业设计:关联规则和决策树...