Hola amigos, tengo una duda y un problema, en mi clase de ICC, nos dejaron modelar una clase conjunto que realizara la intersección y la unión, la he creado y todo "bien" al parecer, por ejemplo si doy A={1,2,3} y B={1,2,5} me da como unión {1,2}, pero cuando doy A={1,1,1} y B={1,2,4}, me da como unión {1,1,1}, pero no se si este bien o hay algún error, porque solo me debe de dar {1} no?, pero que me puedan ayudar, les anexo mi código clase y un código de prueba de la clase, gracias.
 
Código clase:    
Código Java:
Ver original- import java.util.*; 
-   
- /** 
-  * CConjuntos.java 
-  * Esta clase define unos conjuntos y sus opreaciones(union,interseccion) 
-  * @version Septiembre 2013 
-  */ 
-   
- public class CConjuntos{ 
-     //Atributos 
-     private int n,m; 
-     private Scanner teclado; 
-      
-     //Constructor 
-     public CConjuntos(int n, int m){ 
-         } 
-      
-     //Metodos 
-     public void cargarA(){ 
-         teclado  = new-  Scanner (System- . in);
-     for(int i = 0;i < ConjuntoA.length;i++){ 
-         System- . out- . print("\nDame un elemento de A: ");
 
-         ConjuntoA[i] = teclado.next(); 
-         } 
-     } 
-     public void cargarB(){ 
-         teclado  = new-  Scanner (System- . in);
-     for(int j = 0;j < ConjuntoB.length;j++){ 
-         System- . out- . print("\nDame un elemnto de B: ");
 
-         ConjuntoB[j] = teclado.next(); 
-         } 
-     } 
-   
-     public void union(){ 
-         resultado  = new String[(- ConjuntoA. length +-  ConjuntoB. length)];
-         System- . out- . print("\nLa union del conjunto A y B\n");
 
-             for(int i=0; i<(ConjuntoA.length + ConjuntoB.length); i++){ 
-                 if(i<ConjuntoA.length) 
-                 resultado[i] = ConjuntoA[i]; 
-             else 
-                 resultado[i] = ConjuntoB[(i-ConjuntoA.length)]; 
-             } 
-             for(int i=0; i<(ConjuntoA.length + ConjuntoB.length); i++){ 
-             for(int j=0; j<(ConjuntoA.length + ConjuntoB.length);j++){ 
-                 if((resultado[i].equals(resultado[j]))&&(i<j)) 
-                 resultado[j]=""; 
-                 } 
-             } 
-             for(int i=0; i<(ConjuntoA.length + ConjuntoB.length); i++){ 
-                 if(resultado[i]!="") 
-                 System- . out- . print(- resultado [- i ]+", ");
 
-             } 
-   
-     } 
-   
-     public void interseccion(){ 
-         System- . out- . print("\nLa interseccion del conjunto A y B\n{ ");
 
-         for(int i = 0;i < ConjuntoA.length;i++){ 
-             for(int j = 0;j < ConjuntoB.length;j++){ 
-                 if(ConjuntoA[i].equals(ConjuntoB[j])) 
-                 System- . out- . print(- ConjuntoA [- i ] + ", ");
 
-                 } 
-         } 
-     } 
-      
-   
- } 
Código prueba:    
Código Java:
Ver original- import java.util.*; 
-   
- public class TestConjunto { 
-      
-     public static void-  main  (String[]-  args ) {
 
-         int n,m; 
-         Scanner lector  = new-  Scanner (System- . in);
-     
-         System- . out- . print("Ingrese la cardinalidad del conjunto A: ");
 
-         n = lector.nextInt(); 
-   
-         System- . out- . print("Ingrese la cardinalidad del conjunto B: ");
 
-         m = lector.nextInt(); 
-   
-         CConjuntos conjunto = new CConjuntos(); 
-         CConjuntos conjunto2 = new CConjuntos(n,m); 
-     
-             conjunto2.cargarA(); 
-             conjunto2.cargarB(); 
-             conjunto2.union(); 
-             conjunto2.interseccion(); 
-          
-     } 
- } 
Espero que me puedan ayudar se los agradeceré mucho.