elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Solucionado]Como puedo mezclar un arreglo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado]Como puedo mezclar un arreglo  (Leído 7,284 veces)
PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
[Solucionado]Como puedo mezclar un arreglo
« en: 6 Febrero 2015, 02:02 am »

Necesito mezclar los valores de un arreglo o de un ArrayList(con cualquiera me va).
Por ejemplo:
Tengo una arrayList, con 3 elementos
Código
  1. ArrayList array = new ArrayList();
  2. array.add("Elemento 1");
  3. array.add("Elemento 2");
  4. array.add("Elemento 3");
  5.  
  6. //Algun metodo para mezclar el arrayList??
  7. array.mezclarElementos();
  8.  
Y lo que necesito, es que el arraList se vuelva a ordenar de manera aleatoria, es una de las pocas cosas que me faltan para terminar un juego que estoy haciendo  ;D.


« Última modificación: 6 Febrero 2015, 22:47 pm por PabloPbl » En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: [Duda]Como puedo mezclar un arreglo
« Respuesta #1 en: 6 Febrero 2015, 03:30 am »

Solo crea dos listas y luegos usas el método addAll para agregarlas a una tercera.

Código
  1. List<String> listOne = Arrays.asList("One", "Two", "Three");
  2. List<String> listTwo = Arrrays.asList("Four", "Five", "Six");
  3.  
  4. List<String> fullList = new ArrayList<>();
  5. fullList.addAll(listOne);
  6. fullList.addAll(listTwo);

Hazlo en un método para que las listas temporales se eliminen al terminar la ejecución del método.


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
MNicolas

Desconectado Desconectado

Mensajes: 127


Developer


Ver Perfil WWW
Re: [Duda]Como puedo mezclar un arreglo
« Respuesta #2 en: 6 Febrero 2015, 18:22 pm »

Te lo explico , porque lo que pides es lógica. El código hazlo tú :P

1. Creas otro arraylist.
2. Haces un bucle que se ejecute mientras en el arraylist que tienes (el original) haya contenido (hay métodos que te dicen si una arraylist está vacía)
3. Si no está vacía haces un random entre 0 y el tamaño del arraylist original.
4. Coges el contenido de index el número que te salió en el random.
5. Le haces .add a la arraylist que creamos en el punto 1 de contenido que sacamos en el punto 4.
6. Borramos del array original el contenido de dicho index.

Ya está
Un saludo!
En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: [Duda]Como puedo mezclar un arreglo
« Respuesta #3 en: 6 Febrero 2015, 19:44 pm »

Hmm leí mal el enunciado. Al parecer lo que deseas es mover aleatoriamente el contenido de la lista. Para mezclar puedes hacer uso del método shuffle() de la clase Collections. Para ordenar, puedes evitar trabajo solo creando una lista temporal.

Ejemplo:

Código
  1. /* semilla que tomara el constructor de Random para generar un numero
  2.  * aleatorio siempre diferente. Si le pasamos la misma semilla, siempre
  3.  * generara el mismo numero, ya que Random genera numeros pseudo aleatorios.
  4.  * la semilla siempre sera diferente al usar System.nanoTime()
  5.  */
  6. public void process() {
  7. List<String> list = Arrays.asList("A", "B", "C", "D", "E"); // lista original
  8. List<String> tempList = new ArrayList<>(list); // lista temporal
  9. suffleList(tempList); // mezclar
  10. }
  11. private void suffleList(List<String> list) {
  12. final long seed = System.nanoTime();
  13. Collections.shuffle(list, new Random(seed));
  14. }
« Última modificación: 6 Febrero 2015, 21:44 pm por Gus Garsaky » En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [Duda]Como puedo mezclar un arreglo
« Respuesta #4 en: 6 Febrero 2015, 22:47 pm »

El método shufle era lo que buscaba muchas gracias a todos igual. ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como mezclar musika
Multimedia
frescorer 2 2,496 Último mensaje 16 Septiembre 2007, 03:48 am
por H4RR13R
Cómo mezclar BATCH + REG
Scripting
carlitos.dll 1 3,722 Último mensaje 1 Julio 2008, 18:31 pm
por Ari Slash
Re: Arreglo como parametro Generico(Solucionado)
Programación Visual Basic
ignorantev1.1 9 4,349 Último mensaje 30 Abril 2011, 11:03 am
por BlackZeroX
Como puedo guardar objetos en un Arreglo
Java
itzg3 0 1,785 Último mensaje 29 Abril 2018, 02:09 am
por itzg3
[Pregunta]: ¿Como puedo definir un arreglo de la siguiente manera con JS?
Desarrollo Web
Leguim 7 5,885 Último mensaje 27 Agosto 2020, 04:11 am
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines