在Java中制作一个彩票程序

我想知道,我需要看看如何使一个可以从Excel文件读取的程序破解

我正在考虑制作一个使用Excel电子表格的程序并读取它们,并生成尚未发生的组合列表

它只是为了一点乐趣,但可能是一个很好的challenege

谢谢

将Excel数据导入Java的直接途径当然是POI 。 非常稳定,优秀的图书馆,并让您进入和Excel的低级内部工作。

值得注意的是繁忙的POI开发者指南 ,这应该有助于缓解一些最初的痛苦。

如果你对学习POI和简单的Java练习更感兴趣,那么这听起来很公平。 更有趣的问题将是如何显示数百万个尚未发生的组合,以及如何从数据结构的angular度来解决这个问题(提示:混合使用散列表查找和生成来保持内存开销最小值)。

如果你想认真对待这个问题,问问自己一个Excel文件是否是这种数据的良好存储机制。 这真的是你在做什么:使用Excel作为数据存储。 有更好的select。

如果您必须使用Excel,那么Andy Khan的JExcel是最好的select。 我发现它远远优于POI。

就我个人而言,我不知道它在这里买什么。 您可以在平面文件中生成所有组合,或者在需要时使用真实数据库。 除了熟悉和无处不在之外,Excel的绘图又是什么?

为什么要走Excel路线呢?

如果要在Java中获得一些乐趣并玩耍,Excel必须有一些方法来从数据中生成一个以逗号分隔的文件。 只要阅读,做任何你想做的事情。

这里有一篇文章可能会帮助你…

用Java读取MS Excel文件

正如其他人所说,有几个图书馆和几个职位可供您开始使用。 我只是想给你两个方法来实现你的目标。

对于“生成还没有发生的组合列表”的情况,

我明白这个目标,因为你有一个抽签的历史,你想要产生一堆从未发生过的随机数集。 基本上你需要第一个随机数字发生器,并生成彩票号码。 然后把这组数字,并尝试在历史数据中find它。 如果你find了,只需重新开始并生成一个新的。 基于我对这个问题的评论,你实际上有机会可以说(5200 / 47M),你可以在历史列表中find你的数字。 重复这整个过程,直到你得到足够的数字。

对于“生成已经发生的组合列表”的情况

你基本上需要在历史列表中find重复项。 从每个历史事件中创build一个Set<Integer> ,并开始将其添加到另一组Set<Set<Integer>> 。 如果在处理过程中已经添加了您添加的数字集,则会从后一个集的add方法中得到错误的返回值。 然后你只是打印或记住重复的数字集。

使用逗号分隔的文件而不是本机Excel文件。 会让你的生活更容易:)