我想对它进行编码,以便我的代码输出以随机顺序输出列表中的所有字符串,而不是重复和重复它们。我希望用三个以上的变量来实现这一点,但为了简短起见,在这个例子中我只有三个变量
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class TestingOutputs {
public static void main(String[] args) {
boolean forever = true, one = true, two = true, three = true;
List<String> outputsList = new ArrayList<String>();
outputsList.add("One");
outputsList.add("Two");
outputsList.add("Three");
while(forever){
String outputsRandom = outputsList.get(new Random().nextInt(outputsList.size()));
while(three) {
if(outputsRandom.equals("Three")) {
System.out.println("This is three");
three = false;
}
while(two) {
if(outputsRandom.equals("Two")) {
System.out.println("This is two");
two = false;
}
}
while(one) {
if(outputsRandom.equals("One")) {
System.out.println("This is one");
two = false;
}
}
}
}
}
}
2条答案
按热度按时间gj3fmq9x1#
一种可能的解决方案是克隆arraylist,随机输出所选项目,然后将其删除。
在代码中,它看起来是这样的:
然而,vishal的解决方案到目前为止是一种更干净、更有效的方法,尤其是对于更大的列表。
7fyelxc52#
首先创建一个从0到字符串数的数字列表。
无序排列创建的列表,并在for each循环中获取元素:
这些数字是随机的,不会重复。希望这能解决你的问题。