Java:从数组逐个检索随机,非重复元素

时间:2015-10-07 12:24:28

标签: java arrays random

我有一个包含一组Points和一个Timer的数组。

我希望从Timer中获取一个随机点,并从Timer中触发每个Action事件。这里的问题是我需要一个不同的Iteration,这意味着我不想两次得到同一个Point。

任何建议?

3 个答案:

答案 0 :(得分:0)

您可以使用列表,shuffle,然后迭代。

List<Point> pointsList = Arrays.asList(yourArray);
long seed = System.nanoTime();
Collections.shuffle(pointsList, new Random(seed));

答案 1 :(得分:0)

您可以使用Collections.shuffle(List),并且可以使用Arrays.asList(T...)的数组支持List。像,

Integer[] arr = new Integer[] { 1, 2, 3 };
Collections.shuffle(Arrays.asList(arr));
System.out.println(Arrays.toString(arr));

将以随机顺序显示数组arr(具有非重复元素)。

答案 2 :(得分:0)

尽管有改进方法,你还可以使用数组的每个索引创建一个简单的列表。一个很小的例子可能是这样的:

admins = Table('admins')
all_admins = admins.scan(
             ConsistentRead=True)
items = all_admins['Items']
for x in items:
  print x['UserName']