FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas al extraer un elemento de ArrayList, se modifica solo???
Hola a todos, estoy haciendo un programa en el que necesito crear un vector de ArrayList. Lo que hice fue crear una clase llamada cosaContainer que tiene un arrayList y dos metodos(Add y Get), que se encargan de incluir y regresarme el valor de arrayList en un indice dado. Los objetos que almaceno en cosaContainer son de tipo "cosa. "Cosa" tiene un entero y 2 metodos: crea, y vecino, este ultimo metodo, multiplica el entero por 2.
Lo que yo necesito es crear una primera instancia cosa y almacenarla en el cosaContainer y después extraer ese objeto y con él llamar a la función vecino, para agregar al vecino a mi cosaContainer. ¿Me explico? El problema es que al extraer del arrayList() el objeto padre( por asi decirlo), modifica también mi objeto original. Es decir si tengo el array[2,4] y pido el primer valor del array para aplicarle el método vecino, que solo hace la multiplicacion ( v=get(0) ; v.vecino me hace esto v=4 y el vector[4,4]. ¿Me explico? ¿Como puedo hacer para que no me modifique el valor ORIGINAL del arrayList?Les pongo mi codigo. GRACIAS -------------------------------------------------------------------------------------------------------------------- public class cosa { int numO; public void vecino() { this.numO = this.numO * 2; } public cosa crea() { Random r = new Random(); numO = r.Next(10); return this; } } ----------------------------------------------------------------------------------------------------------------------------- public class solutionContainer { public int count; public ArrayList list= new ArrayList(); public solutionContainer() { list = new ArrayList(); count = 0; } public void add(cosa s) { list.Add(s); list[count] = s; count++; } public cosa Get(int index) { Array nlist = (Array)list.ToArray().Clone(); return (cosa)nlist.GetValue(index); } ---------------------------------------------------------------------------------------------------------- //Creo mi arreglo solutions = new solutionContainer[5]; for (int j = 0; j < 5; j++) solutions[j] = new solutionContainer(); //Creo los primeros valores de cosa y los almaceno en mi vector cosa s=new cosa(); for (int j = 0; j < 5; j++){ Random r = new Random(); s = s.crea(); solutions[j].add(s); } //Creo el vecino y me modifica el OBJETO ORIGINAL!!!!!! for (int j = 0; j < 5; j++) { s = solutions[j].Get(0); s.vecino(); solutions[j].add(s); } |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
problema con ArrayList | reina | JAVA | 5 | 08-05-2012 23:10:32 |
Problemas para deseleccionar un elemento de un listbox | neon | OOP | 5 | 19-08-2011 16:00:18 |
Extraer solo el nombre de un archivo sin su extencion | coyule | API de Windows | 2 | 13-01-2007 04:12:01 |
ArrayList | YaninaGenia | .NET | 2 | 12-06-2006 19:53:58 |
Extraer solo nombre de archivo y extensión | JODELSA | Varios | 11 | 13-07-2005 15:04:09 |
|