Удаление элемента из ArrayList Java

224
27 июля 2021, 21:40

У меня есть класс Worker и форма расчета ЗП

import javax.swing.*;
public class Worker extends Object {
private String full_name;
private String position;
private int pay;
private String string_pay;
public Worker (String worker_full_name, String worker_position, int worker_pay){
    full_name = worker_full_name;
    position = worker_position;
    pay = worker_pay;
}
@Override
public String toString() {
    return full_name + " - " + position + " - " + pay + " руб" + "\n";
}
public int getPay(){
   int result = pay;
   return result;
   }
}

Я храню информацию о каждом сотруднике в ArrayList workers. Добавляю новых рабочих, получая ФИО, Должность и ЗП из полей формы.

   Worker worker = new Worker(full_name_Text_Field.getText(),position_list_model.getSelectedItem().toString(),worker_pay);
            workers.add(worker);
  // добавляем строку с новым рабочим в текстовое поле
  list_of_workers.setText(list_of_workers.getText()+ workers.get(workers.size()-1).toString());

При нажатии на кнопку "удалить" происходит следующие:

   if (e.getSource() == delete_button && list_of_workers.getText().trim().length() > 0) {
   // запоминаем выделенный текст
   str_on_delete = list_of_workers.getSelectedText();
   // Разделяем его на строки и записываем в массив (нужно если выделили несколько строк)
    String [] strs = new String[str_on_delete.split("\n").length];
            strs = str_on_delete.split("\n");
            // Сравниваем каждого worker с выделенными строками
            for (int i =0; i< str_on_delete.split("\n").length; i++){
                for (int j = 0; j<workers.size(); j++){
                    // Если получаем совпадение
                    if (workers.get(j).toString().equals(strs[i]) ){
                       // удаляем рабочего из ArrayList 
                       workers.remove(j);
                    }
                }
            }
                        // Очищаем текстовое поле от выделенного текста
                        list_of_workers.replaceSelection("");
                        // проверяем удалился ли рабочий
                        System.out.println(workers.size());
        }

Почему объект не удаляется из ArrayList workers?

READ ALSO
нужно найти месторасположение файла, по его названию

нужно найти месторасположение файла, по его названию

есть имя файла Chrome, нужно только по его названию, найти где файл находится

186
Как изменять переменные из функции main в других функциях?

Как изменять переменные из функции main в других функциях?

Хочу, чтобы переменная one приняла значение two в теле не основной функцииВ с++ на это есть указатели

188
Фрагменты ViewPager в фрагментах BottomNavigationView

Фрагменты ViewPager в фрагментах BottomNavigationView

В общем, есть фрагмент HomeFragment, который выбирается с помощью BottomNavigationViewВ этом фрагменте есть еще два фрагмента TabLayout\ViewPager фильмы и сериалы

273
void is an invalid type for the variable deleteLine

void is an invalid type for the variable deleteLine

Написал программу которая удаляет определенную строку из файла,но что-то не пашет

282