Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2008
quilaztli quilaztli is offline
Registrado
 
Registrado: feb 2008
Posts: 1
Poder: 0
quilaztli Va por buen camino
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);
}
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 23:01:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi