gpt4 book ai didi

java - 为什么 if 语句不适用于我的 boolean 数组列表?

转载 作者:行者123 更新时间:2023-12-01 17:34:01 27 4
gpt4 key购买 nike

我在这里想做的是始终从我的字符串数组列表中获取随机值,为此我使用另一个包含与字符串相同数量的 boolean 值的数组列表。

当我需要一个随机字符串时,我会这样做:

randomstring = r.nextInt(100);
String mystring = c.getAnswear(randomstring);

if(c.getAnswear(randomstring) == null){
randomstring = r.nextInt(100);
mystring = c.getAnswear(randomstring);
System.out.println("Random again!!!!!!!!!!!!!!!");
}

这就是 c.getAnswear 内部的样子

List<String> strings = new ArrayList<String>();
strings.add("blablabla");
//And another 100 of theese
//Then we have theese boolean array
ArrayList<Boolean> trueornot = new ArrayList<Boolean>();
trueornot.add(false);
//Another 100 of them
//Then we have this
String Answear = null;
if(trueornot.get(indexNum).equals(true)){
Answear = null;
System.out.println(Answear);
System.out.println("Already used string random again!");
}
else if(trueornot.get(indexNum).equals(false)){
trueornot.add(indexNum, true);
Answear = strings.get(indexNum);
System.out.println(Answear);
System.out.println("Something in the array was set to true");
}
return Answear;

但是当我尝试这样做时,可以随机化我想要的字符串,并且它打印到控制台,某些内容设置为 true,但我看到很多次相同的字符串被再次使用,并且 System.out.println( “已经再次使用随机字符串!”); 永远不会在控制台中打印

与我调用 getAnswear 时相同,我有 if 语句 (c.getAnswear(randomstring) == null) 里面的行 System.out.println("random Again! !!!!!!"); 永远不会进入控制台。

我该如何让它发挥作用?似乎 getAnswear 内的答案字符串永远不会为空,这很奇怪,因为我将 boolean 值设置为 true。

最佳答案

trueornot.add(indexNum, true)
这会将值添加到列表中,并将该索引处的前一个值在列表中向下移动。

您应该使用 trueornot.set(...) 来替换值...

更新:

And this is how it looks inside c.getAnswear

List<String> strings = new ArrayList<String>();

strings.add("blablabla");

//And another 100 of theese
//Then we have theese boolean array

ArrayList<Boolean> trueornot = new ArrayList<Boolean>();

trueornot.add(false);

//Another 100 of them
//Then we have this

如果每次调用 getAnswer 时都会发生这种情况,那么您每次都会重新创建字符串和 boolean 列表,所有以前的更改都会丢失。
stringstrueornot 应该是类字段而不是局部变量。

关于java - 为什么 if 语句不适用于我的 boolean 数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181840/

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