удалив объект из arraylist сокращать стоимость переменной arraylist в одном из объектов, последующих за удаленным

Я объясняюсь. У меня есть arraylist с идентификацией встреч 1,2,3,4,5, объект aciente и час. Я хочу, чтобы, когда удалит встреча например 3, идентификации 4 перешло к тому, чтобы быть 3 и того 5 перейдет к тому, чтобы быть 4. Это - то, что пришло в голову мне

for (int i = 0; i < listaDoctoresG.size(); i++) {
    if (listaDoctoresG.get(i).getNombreDoctor().compareToIgnoreCase(cmbDoctor.getSelectedItem().toString()) == 0) {
        listaDoctoresG.get(i).getListaCitas().remove(indice);
        for (int x = 0; x < listaDoctoresG.get(i).getListaCitas().size();x++) {
            Doctor nD = (Doctor) listaDoctoresG.get(i);
            for(int z = indice; z<=nD.getListaCitas().size(); z++ ){
             int nCita = nD.getListaCitas().get(i).getNumerocita();
             nCita -=1;
            }
        }
    }
}

Что ему не хватает чего-то, но не, как делание этого

2
задан 08.11.2019, 21:35
1 ответ

Есть лучшие способы это делать, но basГЎndome в твоем вопросе, aquГ - у тебя есть ответ.

у переменной numeroCitas должна бы быть C mayГєscula. И я рекомендую тебе в объектах не помещать такой суффикс как Встречи или Доктор. Если или estГЎs соглашаясь на объект Доктор, или ты знаешь, что Doctor.nombre - имя доктора

for (int i = 0; i < listaDoctoresG.size(); i++) {

    // El doctor lo tienes desde este punto
    Doctor doctor = listaDoctoresG.get(i);

    if (doctor.getNombreDoctor().equalsIgnoreCase(cmbDoctorSelected)) {

        // Este indice debe ser del tipo primitivo int, no puede ser Integer
        doctor.getListaCitas().remove(indice);

        // Recorre la lista de citas desde la que se ha borrado
        for(int j=indice; j<doctor.getListaCitas().size(); j++) {

            // Actualiza los numeros
            doctor.getListaCitas().get(j).setNumeroCita(
                doctor.getListaCitas().get(j).getNumeroCita()-1);
        }
    }
}
2
ответ дан 01.12.2019, 12:13

Теги

Похожие вопросы