То, что я пытаюсь сделать здесь, - это всегда получать случайное значение от моего строкового массива и для этого я использую другой массив, содержащий то же количество логических значений, что и строки.
Когда мне нужна случайная строка, я делаю это:
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("Already used string random again!");
никогда не печатается в консоли.
То же самое, когда я вызываю этот getAnswear, у меня есть оператор if (c.getAnswear(randomstring) == null)
строка внутри System.out.println("random again!!!!!!!");
никогда не попадает в консоль.
Как мне заставить это работать? Похоже, строка ответа внутри getAnswear
никогда не равна нулю, и это странно, потому что я устанавливаю логическое значение true.