我遇到的问题是时不时地出现,这是相当恼人的。
我有两个数组列表:
*一个人跟踪名字
*记录这些名称使用次数的“计数器”
问题是:“连接”到每个名称的计数器可能是不同的。我想选择与最低计数器连接的6个名称。如果有7个或更多的名称连接到最低计数器,我该如何做到这一点,同时保持选择的随机性?
参考:这两个数组列表是通过使用相同的随机种子来“连接”的。他们被随机洗牌的原因是因为第一次抽奖(每天5次抽奖-1)每个人都从0开始。通过打乱数组列表,我可以确保选择是随机的。
我希望这对你有意义。如果我的描述写得不好,或者你在理解一些东西时有问题,可以问出来:)
发布于 2016-12-29 16:57:50
简单地说,不要使用多个数组,使用像CountedName这样的类来存储名称和计数器。然后,您可以简单地使用自定义比较器对这些countedName数组进行排序,该比较器根据存储的count进行排序。
发布于 2016-12-29 17:00:26
而不是创建两个单独的数组/列表,您可以维护一个哈希图,将名称存储为键,将计数存储为值,并且您可以提供自定义逻辑来相应地递增/递减计数器。
发布于 2016-12-29 16:58:04
您可以创建一个包含名称和计数器作为变量的对象(类)。然后将这些对象存储在一个单独的数组中,您可以随心所欲地对其进行混洗。
https://stackoverflow.com/questions/41376164
复制相似问题