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!
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.