`

组合算法

阅读更多



 

 

图片说明:
上面是一个数组,存储着某个类的多个对象.

 

对象结构:

//中奖数据对象
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
0
0
分享到:
评论

相关推荐

    基于位图的n选m的组合算法实现(C#)

    在IT领域,组合算法是一种常见的数据处理方法,用于从给定的集合中找出所有可能的m个元素的子集,当需要对大量数据进行筛选或分析时尤其有用。本项目是基于C#语言实现的n选m组合算法,能够处理各种类型的数据,包括...

    基于Vue实现电商SKU组合算法问题

    基于Vue实现电商SKU组合算法问题涉及到多个方面,本文将重点探讨以下几个知识点: 1. Vue框架在电商中的应用 Vue是一套构建用户界面的渐进式JavaScript框架,用于构建交互式的Web界面。在电商领域,Vue能够帮助...

    基于c语言排列组合算法

    基于C语言排列组合算法 排列组合是计算机科学中一个重要的概念,它广泛应用于数学、统计学、计算机科学等领域。排列组合问题的算法设计是指如何高效地生成所有可能的排列或组合。今天,我们将讨论基于C语言的排列...

    C#实现排列组合算法完整实例

    排列组合是常见的数学问题,本文就以完整实例形式讲述了C#实现排列组合算法的方法。分享给大家供大家参考之用。具体方法如下: 首先,数学中排列组合,可表示为:排列P(N,R) 其实排列实现了,组合也就实现了,组合...

    PHP实现多种类型的排列组合算法

    在编程领域,排列组合算法是解决许多问题的关键,特别是在数据处理、数据分析以及各种优化问题中。PHP作为一种流行的服务器端脚本语言,虽然不是为高性能计算而设计,但其丰富的库和简洁的语法使得实现这些算法变得...

    C++实现生成组合算法

    C++实现生成组合算法 在计算机科学和数学中,组合算法是一种常用的算法,用于生成所有可能的组合或子集。下面是 C++ 实现生成组合算法的详细介绍。 一、组合的基本概念 组合是指从一个集合中选出若干元素,按照...

    Java排列组合算法分析和代码实现

    3. 位运算的理解:在组合算法中,位运算的运用可以显著提升算法性能,你需要熟悉位运算符及其在Java中的使用。 4. 缓存优化:对于组合问题,可以考虑使用缓存存储已计算的结果,避免重复计算。 总之,这个资源包...

    c++ 排列组合算法,代码简单

    根据给定的文件信息,我们可以总结出以下关于C++中排列组合算法的知识点: ### C++中的排列组合算法实现 #### 1. 排列算法(Permutation) 在C++中,排列算法通常用于生成一组元素的所有可能顺序。在给定的代码中...

    基于c语言的排列组合算法

    在这个“基于C语言的排列组合算法”中,我们将深入探讨这两个概念以及如何使用C语言来实现它们。 排列是有限集合中的元素的一种有顺序的排列方式。在C语言中,我们可以使用递归方法来实现排列算法。首先,我们需要...

    java组合算法

    ### Java组合算法详解 在Java编程语言中,组合算法是一种常用的数据处理方法,尤其是在需要从一组数据中选取特定数量元素的场景下。本篇文章将基于提供的代码片段来深入探讨组合算法的基本原理、实现方式以及其背后...

    Java排列组合算法 - 郭睿的专栏 - CSDN博客

    Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客

    matlab 组合算法参考资料及代码

    组合算法在MATLAB中的应用广泛,它涉及到许多数学和计算机科学的基本概念,如排列、组合、穷举搜索、最优化等。本参考资料旨在提供一种深入理解及实践MATLAB中组合算法的方法。 首先,我们要理解什么是组合算法。...

    实现了排列组合算法的类(JAVA).rar

    这个"实现了排列组合算法的类(JAVA).rar"文件提供了一种高效的JAVA实现,可以处理任意类型数组的排列和组合。下面将详细讨论排列组合的基本概念,以及在JAVA中实现这些算法的关键点。 排列是指从n个不同元素中...

    组合算法Combinatorial Algorithms

    这些讲义涵盖了算法,尤其是组合算法,其主要目标是创建正确且始终有效的算法。

    排列组合算法实现

    排列组合算法实现,支持模板类。支持重复数的排列。算法采用递归方法,简单易懂。

    动态规划,分治算法,概率算法,模拟退火算法,搜索算法,贪婪算法,网上matlab,遗传算法,组合算法

    本篇文章将深入探讨标题和描述中提到的一些核心算法,包括动态规划、分治算法、概率算法、模拟退火算法、搜索算法、贪婪算法、在线MATLAB应用、遗传算法以及组合算法。 1. **动态规划**:动态规划是一种解决具有...

    4位特定组合算法.rar

    "4位特定组合算法"可能涉及到一系列基于4位数字的运算规则,用于生成特定的序列或进行数据处理。这里我们将深入探讨4位特定组合算法的相关知识点。 1. **位操作**:在计算机中,数据通常以二进制形式存储,4位对应...

    经典的组合算法

    ### 经典的组合算法 在计算机科学领域中,组合算法是解决许多复杂问题的关键工具之一。本篇文章将深入解析一种经典排列组合算法的核心概念、实现逻辑及其应用场景,旨在为同行朋友们提供有价值的参考。 #### 一、...

    高级组合算法 高级组合算法

    根据给定文件的信息,我们可以...通过以上概述,可以看出《高级组合算法》这门课程涵盖了从基本概念到高级技术的广泛内容,旨在帮助学生深入了解网络流、最小成本流、动态网络流和在线优化等多个领域的高级组合算法。

Global site tag (gtag.js) - Google Analytics