我使用了EditText
小部件,客户端可以输入信息,然后我在ArrayList
中保存了几个条目。现在我想从ArrayList
中随机选择其中一个条目。如何随机选择ArrayList
中的一个元素?
我已经尝试过这些方法,但是当我运行它时会崩溃。
String myrandomString = String.valueOf(rand.nextInt(options.size()));
//int myrandomString = rand.nextInt(options.toString().length());
答案 0 :(得分:1)
如果我理解正确,您已经有ArrayList<String>
包含以前输入的字符串,当用户输入新字符串时,它会附加到此列表中。
您想要做的是从此列表中选择一个随机字符串。
您可以使用java.util.Random
类从列表中生成随机索引,并返回位于该索引上的单词。
例如,下面的代码将在每次执行时打印测试列表的随机成员。
Random random = new Random();
List<String> test = Arrays.asList("Text1","Text2","Text3","Text4");
System.out.println(test.get(Math.abs(random.nextInt()) % test.size()));
修改强>
如评论中所述,将Math.abs(random.nextInt()) % test.size()
替换为random.nextInt(test.size())
将使代码更具可读性,并减少生成大量重复项的机会(这将使数字分布更均匀)。< / p>
答案 1 :(得分:0)
首先在arrayList大小中选择一个随机索引:
int randIdx = new Random().nextInt(arrayList.size());
然后在该索引处获取String
String randString = arrayList.get(randIdx);