gpt4 book ai didi

java - 如何避免 FOR JAVA 的一轮

转载 作者:行者123 更新时间:2023-12-02 04:06:13 24 4
gpt4 key购买 nike

我正在尝试制作一个应用程序“ secret friend ”,我有这个:

int start2;
for (int i = 0; i < lista.size(); i++) {
start2 = random.nextInt(lista2.size() - 0) + 0;
if (lista2.get(start2).equals(lista.get(i))) {
break;
} else {
listaParejas.add(lista.get(i) + "->" + lista2.get(start2));
listaSalidos.add(lista2.get(start2));
lista2.remove(start2);
//lista.remove(i);
}
}

lista 和 lista2 被打乱,所以例如 lista 有 Daniel,lista2 有 Michael,所以 listaParejas 将有“Daniel->Michael”,但有时它会像“Daniel->Daniel”,所以在第一个 ir 中我我正在努力避免这种情况,我怎样才能像第一个 IF 那样进行回合不计入 FOR,谢谢,我很绝望,因为我已经尝试了又尝试,但什么也没有:(

最佳答案

你在现实生活中过得怎么样?

进行随机分配,如果不匹配则重复整个过程。如果你是为一小群 friend 做这件事,重复起来很快。如果您是为一大群 friend 这样做,则不太可能出现不匹配的情况。

另一种方法:

你有捐赠者和接受者。第一个捐赠者会随机得到一张写有接受者姓名的纸条;如果没有不匹配,则捐赠者和接收者都将退休(没有人是两次捐赠者,没有人是两次接收者)。如果捐赠者(除了最后一个)获得了自己的论文,他会选择另一个随机接收者(或者可能只是下一个可用的接收者)。

唯一复杂的情况是最后一位捐赠者取回最后一张纸条并在上面发现自己的名字。在这种情况下,您只需与任何其他捐赠者交换(如果 Daniel->Daniel 是最后一对,您确定 Daniel 不会出现为捐赠者或之前任何配对中的接收者,因此您将 Daniel->Daniel; John->Michael 转换为 Daniel->Michael; John->Daniel)。

在编写第一行代码之前,您应该真正知道如何解决问题;仅使用键盘并不会单独出现解决方案。

关于java - 如何避免 FOR JAVA 的一轮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com