Java - Evitar que la clave de paciente se repita

 
Vista:
sin imagen de perfil
Val: 19
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Evitar que la clave de paciente se repita

Publicado por Marco (5 intervenciones) el 03/03/2020 00:27:29
Necesito ayuda para evitar que la clave(cve) del paciente se repita cada que se ingresa un nuevo paciente, el arreglo es tipo "Pacientes" porque esta basado en una clase aparte, y desde donde inserto los datos es desde mi clase principal que llama a la clase "Manipula" para modificar el arreglo.
El arreglo es dinámico pues no sabemos la cantidad de datos que nos darán hasta el día de presentar el proyecto.

Esta es mi clase principal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void main(String[] args)
{
    Manipula obj = new Manipula();
    obj.insertar("Marco", 12341, 1, "30 de Abril");
    obj.insertar("Zarco", 21312, 1, "30 de Abril");
    obj.insertar("Parco", 12331, 2, "30 de Abril");
    obj.desp();
    System.out.println("Paciente buscado: ");
    obj.busca(12331);
    System.out.println("Pacientes en clinica solicitada: ");
    obj.clinica(1);
    System.out.println("");
    System.out.println("Paciente a eliminar: ");
    obj.elimina(21312);
    obj.desp();
}

Y este es el método que se llama en la clase principal para insertar datos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void insertar(String nom, int cve, int clinica, String fechaV)
{
    if (arr == null)
    {
        arr = new Pacientes[1];
        arr[0] = new Pacientes(nom, cve, clinica, fechaV);
    } else
    {
        Pacientes nvo[] = new Pacientes[arr.length + 1];
        System.arraycopy(arr, 0, nvo, 0, arr.length);
        nvo[arr.length] = new Pacientes(nom, cve, clinica, fechaV);
        arr = nvo;
    }
    ordenarArr();
}

Adjunto el proyecto completo por si es mas facil guiarse con el, de antemano gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.764
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Evitar que la clave de paciente se repita

Publicado por Rodrigo (476 intervenciones) el 03/03/2020 07:23:45
Usa un ArrayList en vez de un arreglo. No tienes que andar pidiendo memoria para el array por cada insercion.

Crea una funcion que recorra el arreglo buscando un paciente con una key dada. Podria retornar boolean: true si la clave esta, false si no esta.
Tu metodo de insercion la usa para saber si insertar el nuevo Paciente o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar