我已经使用了一个ArrayList来存储一些字符串,以便它们可以随机选择(随机是我调用第一个值/数组,它是一个未知数组,已被洗牌)。我想使用这个新随机选择的数组从中选择一个值并将其分配给变量。
`ArrayList die = new ArrayList();
String[] D1 = {"A","B","B","J","O","O"};
die.add(D1);
String[] D2 = {"G","N","W","E","H","E"};
die.add(D2);
String[] D3 = {"E","E","N","U","I","S"};
die.add(D3);
String[] D4 = {"I","T","Y","D","T","S"};
die.add(D4);
String[] D5 = {"S","E","O","T","I","S"};
die.add(D5);
String[] D6 = {"R","D","I","X","L","E"};
die.add(D6);
String[] D7 = {"N","N","Z","R","H","L"};
die.add(D7);
String[] D8 = {"O","T","W","A","T","O"};
die.add(D8);
String[] D9 = {"E","E","G","A","N","A"};
die.add(D9);
String[] D10 = {"R","E","T","T","Y","L"};
die.add(D10);
String[] D11 = {"S","P","C","A","H","O"};
die.add(D11);
String[] D12 = {"O","U","M","C","I","T"};
die.add(D12);
String[] D13 = {"E","T","W","R","H","V"};
die.add(D13);
String[] D14 = {"Qu","N","M","I","U","H"};
die.add(D14);
String[] D15 = {"F","F","P","S","A","K"};
die.add(D15);
String[] D16 = {"D","R","Y","V","E","L"};
die.add(D16);
Collections.shuffle(Arrays.asList(die));`
我尝试使用String diceOne = die.get(new Random().toString(die.get(0).Length));
函数随机调用第一个混洗数组中的String值,但它不起作用。有什么想法吗?
答案 0 :(得分:0)
首先从List
Collections.shuffle(Arrays.asList(die));
String[] values = (String[])die.get(0);
也可以抓住第一个元素,因为列表已经被随机化了。接下来,从数组中获取一个随机值...
Random rnd = new Random();
String value = values[rnd.nextInt(list.length)];
如果您想在某种循环中执行此操作,请继续使用Random
的相同实例,否则您将面临生成非随机重复项的风险,例如......
Random rnd = new Random();
for (int index = 0; index < 100; index++) {
Collections.shuffle(Arrays.asList(die));
String[] values = (String[])die.get(0);
String value = values[rnd.nextInt(values.length)];
System.out.println(value);
}
如果您使用泛型来指定List
ArrayList<String[]> die = new ArrayList<>();
//...
String[] values = die.get(0);