JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Вроде бы тоже должно работать???
Сергей Сыс
29 уровень
  • 13.08.2021
  • 546просмотров
  • 7комментариев

Вроде бы тоже должно работать???

Вопрос по задаче Бухгалтерия
Java Syntax,  13 уровень,  3 лекция
Обсуждается


В классе Solution есть список сотрудников waitingEmployees, которые ждут зарплату, и список сотрудников alreadyGotSalaryEmployees, которые её уже получили. Необходимо реализовать метод paySalary(String), который в качестве аргумента принимает имя сотрудника, желающего получить зарплату.
Метод должен проверить наличие сотрудника в списке waitingEmployees, и если он не получал зарплату, выдать её:

  1. Если параметр метода paySalary(String) равняется null, ничего не нужно делать.
  2. Добавить имя сотрудника в список alreadyGotSalaryEmployees.
  3. В списке waitingEmployees заменить имя сотрудника на null.
Требования:
  • Метод paySalary(String) должен добавлять в список alreadyGotSalaryEmployees имя сотрудника, если он есть в списке waitingEmployees.
  • Метод paySalary(String) должен заменять имя сотрудника на значение null, если он есть в списке waitingEmployees.
  • Метод paySalary(String) не должен изменять списки waitingEmployees и alreadyGotSalaryEmployees, если переданного имени нет в списке waitingEmployees.
  • Если в метод paySalary(String) передается null, метод не должен добавлять это значение в waitingEmployees или alreadyGotSalaryEmployees.
.....
package com.javarush.task.pro.task12.task1209; import java.util.ArrayList; /* Бухгалтерия */ public class Solution { public static ArrayList<String> waitingEmployees = new ArrayList<>(); public static ArrayList<String> alreadyGotSalaryEmployees = new ArrayList<>(); public static void initEmployees() { waitingEmployees.add("Гвинно"); waitingEmployees.add("Гунигерд"); waitingEmployees.add("Боргелейф"); waitingEmployees.add("Нифрод"); waitingEmployees.add("Альбиуф"); waitingEmployees.add("Иногрим"); waitingEmployees.add("Фриле"); } public static void main(String[] args) { initEmployees(); } public static void paySalary(String name) { for (int i = 0; i < waitingEmployees.size(); i++) { if (name.equals(null)){ break; } else if (name.equals(waitingEmployees.get(i))) { alreadyGotSalaryEmployees.add(name); waitingEmployees.remove(i); waitingEmployees.add(null); } } } }
0
Комментарии (7)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Green
Уровень 26
13 августа 2021, 15:44
Сделай проверку если есть в waitingEmployees и нет в alreadyGotSalaryEmployees то пишешь имя alreadyGotSalaryEmployees и потом следующей строкой пишешь null в waitingEmployees
0
Green
Уровень 26
13 августа 2021, 15:45
используй indexOf для записи null Весь код 3 строки и один if
0
Дмитрий Backend Developer
13 августа 2021, 12:36
А зачем его удалять? Попробуй
waitingEmployees.get(i) = null;
0
Семён
Уровень 15
13 августа 2021, 11:17
тут 2 нюанса: 1. equals сравнивает значения переданные по ссылке, объектом ссылочного типа. Т.е. объект создан но он пуст. В данном случае string может принимать null только когда самой переменной нет и ссылки еще не существует, т.е. переменная не объявлена. 2 Если не указывать позицию, список будет добавлять новый элемент в конец. Тут 2 варианта, Вы можете удалить и добавить на туже позицию или заменить элемент позиции.
+2
Сергей Сыс
Уровень 29
13 августа 2021, 11:31
Заменил 34 и 35 строку на waitingEmployees.set(i,null); все равно не проходит 4 условие
0
Семён
Уровень 15
14 августа 2021, 06:51
Смотрите, я немного по другому напишу что они требуют: если paySalary(null) не производить действий. Примитивная переменная - область памяти хранящая значение, ссылочная - ссылка на область памяти, которая хранит значение. В лекциях объясняют примитивы можно сравнивать ==, в случаях ссылочных типов это сравнение ссылок, если метод equals для класса перезаписан для сравнивания значений - сравнивайте через equals. Да string ссылочный тип данных, но посмотрите что Вам передается в параметре? Сравнивание через equals подразумевает что у Вас есть переменная, которая хранит ссылку на пустую область памяти. Переменная есть, значения нет.
0
Сергей Сыс
Уровень 29
13 августа 2021, 11:06
единственноое это то что нулл будет не в том месте откуда удалил и-й элемент
+1
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush