arrays - Embaralhar dois vetores java
Perguntas � arrays � Embaralhar dois vetores java
Embaralhar dois vetores java
Estou tentando embaralhar dois vetores inteiros em java, mas eles devem manter a ordem , pois são posições de alguns componentes do meu formulário , alguem pode me ajudar?
como assim, você quer embaralhar dois vetores mas mantê-los ordenados ? você não estaria querendo dizer intercalar os dois vetores (conhecido como merge ?) http://pt.wikipedia.org/wiki/Merge_sort
— Rodolfo Mendes 06 de mar de 2015
Partindo do pressuposto que v2 tem o mesmo tamanho ou é maior do que v1:
public void embaralhar(int[] v1, int[] v2) {
// Embaralhamos os dois arrays
for (int i = 0; i < v1.length - 1; i++) {
int max = tamanho - i - 1;
int ind = random.nextInt(max);
int aux = v1[ind];
v1[ind] = v1[max];
v1[max] = aux;
int aux = v2[ind];
v2[ind] = v2[max];
v2[max] = aux;
PS: Talvez fosse melhor ter um só array, com uma classe contendo os dois valores. Assim você só precisaria embaralhar em um lugar e poderia usar o método Arrays.shuffle para isso.
Embaralhalos na mesma ordem , como se os índex de cada vetor estivessem interligados entende?
não, é impossível entender porque são dois conceitos excludentes, é a mesma coisa que dizer que você quer fazer gelo esquentando a água ...
Acho que você não entendeu , um vetor guarda a posição X dos botões , o outro guarda a posição Y , são diversos botões , só quero embaralhar os 2 vetores , onde eles mantenham a ordem , eu já vi um código parecido mas não consegui implementa-lo ao meu
— Alison Alves 06 de mar de 2015
Minha sugestão: faça uma nova pergunta, mas explicando claramente o que você precisa. É muito mais fácil de entender quando você diz que tem dois vetores que armazenam posições x e y do que dizer "embaralhar mantendo ordenação". Além disso, observe como o GUJ Respostas é usado. É um sistema de perguntas respostas, e não um fórum de discussão. Sendo assim, não responda suas próprias perguntas, utilize a seção de comentários para eventuais complementos.
— Rodolfo Mendes 07 de mar de 2015
Provavelmente os índices do vetor 1 e do vetor 2 são relacionados, como duas colunas de uma planilha. Assim, se o índice do vetor 1 mudar, o do 2 terá que mudar de acordo.
— ViniGodoy 07 de mar de 2015
Acho que entendi tipo Imaginasse que o algoritmo de embaralhar seja aplicado da mesma forma nos dois arrays tal que haja uma conexao do indice 0 do vetor A e do indice 0 do vetor b.
Acho q vc deveria olhar para uma estrutura de dados que se adequa melhor para isso, Um hashmap, uma estrutura de chave e valor, com se fosse uma matriz de N linhas e duas colunas, soh que muito mais sofisticado. Dai a forma de emberalhar vc pode procurar por algoritoms que fazem algo chamado shuffle, eu nunca mexi com esse tipo de algoritmo. mas a ideia acho que vai te ajudar
Tente usar a classe Random, e coloque a instância dela (int) dentro dos parametros dos arrays.. acho que é isso que vc está tentando fazer. sua pergunta está um pouco confusa.
Também acredito que um HashMap atenderia melhor as ligações entre essas 2 estruturas.
Não é a resposta que estava procurando? Procure outras perguntas com as tags arrays arraylist collections ou faça a sua própria pergunta.