Dúvidas sobre random()

Bem, sou iniciante em Java e tenho algumas duvidas.
preciso gerar um vetor de N posições e DESordenar os índices em cada posição do vetor. Ex: um usuario vai entrar um numero limitante 10. então terei int A [] = new int[10];
mas como usar o Math.random() para que cada posição do vetor contenha um índice (não repetido), ou seja, quero gerar uma lista desordenada, pois estou implementando o algoritmo de QuickSort.

agradeço a quem ajudar.

bom…
vamos lá…

1-vc não poderá adcionar tipos primitivos em um vector… int … é um tipo privimito… entaum use Integer

[code]Integer[] a = new Integer[10];

2- antes de acionar o interio ao vector teste… se ele já existe… o código fica algo mais ou menos assim

[/code]

Vector v = new Vector(); Integer temp = null; while (v.size() < 10) { temp = new Integer((int)Math.floor(Math.random()*10)) if (!v.contains(temp)) v.add(temp); }

Tente o seguinte:


int A[] = new int[10];
Vector v = new Vector();
for(;v.size() < 10;)
{
  Integer n = new Integer(random.nextInt(10));
  if(v.contains(n))
    continue;
  v.addElement(n);
}
for(int i = 0; i < 10; i++)
  A[i] = ((Integer) v.elementAt(i)).intValue();

Obs. não testei o código.

só comentando o código… que eu eskeci de fazer antes…

ele entra num loop… só sia dele quando tiver 10 itens dentro do VETOR…

dentro do loop ele coloca um valor de 1 a 10 dentro do temp

este valor ele testa se já existe no vetor… se já existe… ele não adiciona… c não existe… ele adciona… e fica fazendo isso… ate ter colocado os 10

[quote=“hipersoft”]Tente o seguinte:


int A[] = new int[10];
Vector v = new Vector();
for(;v.size() < 10;)
{
  Integer n = new Integer(random.nextInt(10));
  if(v.contains(n))
    continue;
  v.addElement(n);
}
for(int i = 0; i < 10; i++)
  A[i] = ((Integer) v.elementAt(i)).intValue();

Obs. não testei o código.[/quote]

só não entendi uma coisa deste código… quem é a variavel random … que vc xama o método .nextInt(10) ??

Para gerar sequências estocásticas:

Random random = new Random();

Para gerar sequências pseudoaleatórias repetidas:

Random random = new Random(5);