+1 voto
por filosofo64 (130 puntos) en Programación

Hola a todos, recién me enteré de este foro y en mejor momento no pudo haber sido. Mi cuestión es la siguiente

 

En lenguaje Java estoy tratando de hacer que una colección hecha con un objeto de la clase ArrayList del paquete java.util sea duplicada (no la referencia a la colección, sino cada uno de los elementos de la colección) en un nuevo ArrayList, (principalmente con la finalidad de que el ArrayList nuevo tenga el mismo número de elementos que el original y cuando se modifiquen los elementos del duplicado, el original no se vea afectado), para que luego en ese segunda colección se coloquen una a la vez todas las combinaciones posibles entre los elementos de la colección original, sin importar que un elemento se repita (supongo que mediante un bucle o con recursividad eso se puede hacer). La cuestión está así:

Posiciones (índice)      1°       2°      3°       4°   …

Colección original     [4.3]  [4.1]  [2.5]  [3.4]  (este se recibe como parámetro)

 

Colección duplicada [4.3]  [4.3]  [4.3]  [4.3]  1° vuelta

Colección duplicada [4.3]  [4.3]  [4.3]  [4.1]  2° vuelta

Colección duplicada [4.3]  [4.3]  [4.3]  [2.5]  3° vuelta

Colección duplicada [4.3]  [4.3]  [4.3]  [3.4]  4° vuelta

Colección duplicada [4.3]  [4.3]  [4.1]  [4.3]  5° vuelta

Colección duplicada [4.3]  [4.3]  [4.1]  [4.1]  6° vuelta

Colección duplicada [4.3]  [4.3]  [4.1]  [2.5]  7° vuelta

Colección duplicada [4.3]  [4.3]  [4.1]  [3.4]  8° vuelta

Colección duplicada [4.3]  [4.3]  [2.5]  [4.3]  9° vuelta

Colección duplicada [4.3]  [4.3]  [2.5]  [4.1]  10° vuelta

Y así sucesivamente

Una dificultad consiste en que la clase con el método que va a realizar las operaciones solo debe recibir el ArrayList Original como parámetro y con eso debe desglosar toda la operación y hay que recordar que el ArrayList puede venir con un número cualquiera mayor que 1 de elementos (si el ArrayList recibido como parámetro trajera solo uno o ningún elemento, el programa señalaría que son elementos insuficientes y luego concluiría su ejecución), así que debe hacer la misma operación si el ArrayList recibido como parámetro tiene solo 3 elementos como si tiene 30 elementos, arrojando una a una todas las combinaciones posibles entre elementos del ArrayList

Es una situación que se me ha vuelto un poco enredosa y, aunque la cuestión aquí es más de razonar la situación que de programarla (creo yo), les agradecería mucho su apoyo

Saludos y de antemano gracias! smiley

Nota: todo esto lo estoy haciendo con bloc de notas y consola de comandos, aun no debo usar NetBeans o similares, no es una tarea de escuela para aquel que llegara a pensarlo.

Tu respuesta

Nombre a mostrar (opcional):
Privacidad: Tu correo electrónico sólo será utilizado para enviarte estas notificaciones.
Verificación anti-spam:
Para evitar esta verificación en el futuro, por favor identifícate o registrate.
...