如何随机化配对的顺序?例如我有 3 个元素存储在列表中,例如A,B,C --> 组成 A-B、A-C、B-C 对。

如何以随机顺序显示该对?例如A-B、A-C、B-C 或者 B-C、A-B、A-C 或者 A-C、A-B、B-C

ArrayList<String> s = new ArrayList<String>();
  s.add("A");
  s.add("B");
  s.add("C");

ListGenerator lg = new ListGenerator(s);

其他类

public class ListGenerator {

  private ArrayList<String> pairsX= new ArrayList<String>();

  public ListGenerator(ArrayList<String> list) {
    int size = list.size();
    int count_pairs = 0;

    // create a list of all possible combinations
    for(int i = 0 ; i < size ; i++)
    {
       String s1 = ""+i;
       for(int j = (i+1) ; j < size ; j++)
       {
          count_pairs++;
          String s2 = ""+j;
          pairsX.add(s1+","+s2);
       }
    }

    System.out.println("numPairs "+count_pairs);
    for(String s : pairsX) {
       System.out.println(s);
    }
   }
有帮助吗?

解决方案

Collections.shuffle(pairsX);

其他提示

我只是向您提供伪代码。假设您的列表中有三项。

  1. i= 生成 0 到 list.size() -1 之间的随机数
  2. j =同样生成另一个随机数。
  3. 然后打印列表。get(i)+“ - ”+list.get(j)

您可以在循环中执行此操作,并添加条件来验证由此生成的一对是否是重复的。

我假设您知道如何生成某些数字之间的随机数。

你可以做类似的事情 (Math.random() * 1000)%3

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top