Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 跟踪多个ArrayList_Java_Arrays_Sorting_Arraylist - Fatal编程技术网

Java 跟踪多个ArrayList

Java 跟踪多个ArrayList,java,arrays,sorting,arraylist,Java,Arrays,Sorting,Arraylist,我遇到的问题时不时会出现,这很烦人 我有两个数组列表: *一个记录姓名的人 *记录这些名称被使用多少次的“计数器” 问题是: “连接”到每个名称的计数器可以不同。我想选择连接有最低计数器的6个名称。如果有7个或7个以上的名称与最低计数器相连,我如何做到这一点,同时保持选择的随机性 有关信息: 两个ArrayList通过使用相同的随机种子进行洗牌而“连接”。 他们随机洗牌的原因是因为第一次抽签(每天5次抽签-1次)每个人都从计数0开始。通过洗牌数组列表,我可以确保选择是随机的 我希望这对你有意义。

我遇到的问题时不时会出现,这很烦人

我有两个数组列表:
*一个记录姓名的人
*记录这些名称被使用多少次的“计数器”

问题是: “连接”到每个名称的计数器可以不同。我想选择连接有最低计数器的6个名称。如果有7个或7个以上的名称与最低计数器相连,我如何做到这一点,同时保持选择的随机性

有关信息: 两个ArrayList通过使用相同的随机种子进行洗牌而“连接”。 他们随机洗牌的原因是因为第一次抽签(每天5次抽签-1次)每个人都从计数0开始。通过洗牌数组列表,我可以确保选择是随机的


我希望这对你有意义。如果我的描述措词不当,或者您在理解某些内容时遇到问题,请询问:)

不要使用多个数组,请使用像
CountedName
这样的类来存储名称和计数器。然后,您可以使用自定义比较器对这些
countedName
的数组进行排序,该比较器根据存储的
count

进行排序。如果不使用多个数组,请使用类似
countedName
的类来存储名称和计数器。然后,您可以使用自定义比较器对这些
countedName
数组进行排序,该比较器根据存储的
count

进行排序。您可以创建一个对象(类),其中包含名称和计数器作为变量。然后将这些对象存储在一个数组中,您可以随意洗牌

您可以创建一个对象(类),其中包含名称和计数器作为变量。然后将这些对象存储在一个数组中,您可以随意洗牌

不必创建两个单独的数组/列表,您可以维护一个hashmap,将名称存储为键,计数存储为值,您可以提供自定义逻辑来相应地递增/递减计数器。

不必创建两个单独的数组/列表,您可以维护一个hashmap,将名称存储为键,将计数存储为值,还可以提供自定义逻辑以相应地递增/递减计数器。

如果包含一些代码,可能会更清晰。与其将相关数据保存在两个单独的对象中,不如将其放在一个对象中。这就是面向对象编程的工作原理。创建一个包含名称字段和计数器字段的类,并生成该类的实例数组。您需要一个比较器,可能还需要
hashCode()
equals()
实现,具体取决于您想要使用它的集合。但是从把所有相关的数据放在一起开始。我将尝试这样做:)谢谢!如果包含一些代码,可能会更清楚。与其将相关数据保存在两个单独的对象中,不如将其放在一个对象中。这就是面向对象编程的工作原理。创建一个包含名称字段和计数器字段的类,并生成该类的实例数组。您需要一个比较器,可能还需要
hashCode()
equals()
实现,具体取决于您想要使用它的集合。但是从把所有相关的数据放在一起开始。我将尝试这样做:)谢谢!啊,这很有道理。我会想办法试试这个:)谢谢!啊,这很有道理。我会想办法试试这个:)谢谢!