Foro de elhacker.net

Programación => Java => Mensaje iniciado por: jorgecotrinax en 7 Noviembre 2021, 18:36 pm



Título: Eliminar datos de una clase insertados en un arraylist
Publicado por: jorgecotrinax en 7 Noviembre 2021, 18:36 pm
tengo la clase  ClassPaciente

Código:
public class ClassPaciente {
 private String Codigo,apellido,nombre;
 private double dias,costodia,pago=0;

    public ClassPaciente(String Codigo, String apellido, String nombre, double dias, double costodia) {
        this.Codigo = Codigo;
        this.apellido = apellido;
        this.nombre = nombre;
        this.dias = dias;
        this.costodia = costodia;
    }

    public double Calculo ( double dias , double costodia ){
        pago=dias * costodia;
        return pago;
    }   

    @Override
    public String toString() {
        return "ClassPaciente{" + "Codigo=" + Codigo + ", apellido=" + apellido + ", nombre=" + nombre + ", dias=" + dias + ", costodia=" + costodia +", Pago " + Calculo(dias, costodia) +  '}';
    }
 
}



En un formulario he insertado los datos en la Clase y en un arraylist


Boton para insetar datos
Código:

   Codigo = txtCod.getText();
     apellido=txtApe.getText();
     nombre=txtNom.getText();
     dias = Double.parseDouble(txtDias.getText());
     costodia= Double.parseDouble(txtCostDia.getText());
     
     ClassPaciente pas = new ClassPaciente(Codigo, apellido, nombre, dias, costodia);
     
     txtpay.setText(""+ pas.Calculo(dias, costodia) );   

   // esta  inicializado ArrayList lista = new ArrayList();
 
     lista.add(pas);       
   
        Iterator<ClassPaciente> iter = lista.iterator();   
       
     
       
         atpaciente.setText(null);   
        while (iter.hasNext()) {         
            atpaciente.append(iter.next()+"\n");           
        }       
     
     


Necesito un botón para que escribiendo el Código del del paciente pueda eliminar el dato del arraylist e imprima la lista nueva mente para ser comprobado

he intentado hacer algo asi pero el dato no se elimina


Código:

    while (iter.hasNext()){
          pas=iter.next();
          if(pas.getCodigo()= Codigo){             
         iter.remove();
         }
      }
      atpaciente.setText(null);   
        while (iter.hasNext()) {         
            atpaciente.append(iter.next()+"\n");           
        }




Título: Re: Eliminar datos de una clase insertados en un arraylist
Publicado por: K-YreX en 7 Noviembre 2021, 19:38 pm
Por un lado, no puedes utilizar el signo "=" para comparar. Este signo es el operador de asignación (da un valor), no de comparación. El signo de comparación para comparar datos primitivos o direcciones de memoria es "==".

Por otro lado, en tu caso no quieres comparar ni un dato primitivo (int, float, char, ...) ni una dirección de memoria sino el contenido de un objeto (String). Para ello necesitas utilizar el método equals().