以随机顺序显示对

时间:2009-10-30 16:50:15

标签: java arraylist

我如何随机化对的顺序? 例如我在列表中存储了3个元素,例如A,B,C - &gt;它产生A-B,A-C,B-C对。<​​/ p>

如何以随机顺序显示对? 例如 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);
    }
   }

2 个答案:

答案 0 :(得分:6)

Collections.shuffle(pairsX);

答案 1 :(得分:0)

我只是提供伪代码。假设列表中有三个项目。

  1. i =生成0到list.size() - 1
  2. 之间的随机数
  3. j =同样生成另一个随机数。
  4. 然后打印 list.get(ⅰ)+ “ - ” + list.get(j)的
  5. 您可以在循环中执行此操作并添加条件以验证这样生成的对是否是重复的。

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

    您可以执行类似(Math.random()* 1000)%3

    的操作