Pergunta

Como posso aleatoriamente a ordem de pares? por exemplo. I ter 3 elementos armazenados na lista e.g. A, B, C -> que faz com que pares de A-B, A-C, B-C

.

Como posso exibir o par em ordem aleatória? por exemplo. A-B, A-C, B-C ou B-C, A-B, A-C ou 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);

outra classe

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);
    }
   }
Foi útil?

Solução

Collections.shuffle(pairsX);

Outras dicas

Eu apenas estou fornecendo-lhe o código pseudo. Digamos que você tenha três itens na lista.

  1. I = gerar um número aleatório entre 0 a list.size () -1
  2. j = Gerar um outro número aleatório semelhante.
  3. print seguida list.get (i) + "-" + list.get (j)

Você pode fazer isso em um loop e adicionar condições para verificar se o par assim gerada é um duplicado.

Eu estou supondo que você sabe como gerar um número aleatório entre determinados números ..

Você pode fazer algo como (Math.random () * 1000)% 3

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top