CRUD 2

  • 18
  • Недоступна
CrUD Batch - multiple Creation, Updates, Deletion. Программа запускается с одним из следующих наборов параметров: -c name1 sex1 bd1 name2 sex2 bd2 ... -u id1 name1 sex1 bd1 id2 name2 sex2 bd2 ... -d id1 id2 id3 id4 ... -i id1 id2 id3 id4 ... Значения параметров: name - имя, String sex - пол, "м" ил
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (370)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Евгений Коротаев Аналитик в Комус
12 января, 18:34
Для передачи параметров запуска не обязательно делать компиляцию или менять настройки проекта, просто не забываем что args массив стрингов, который можно переопределить и в коде, например, сразу после входа в метод main:
public static void main(String[] args) {
      args = new String[] {"-c", "Миронов", "м", "15/04/1990"};
Главное, перед отправкой на валидацию не забыть закомментировать строки с переопределением args.
Владислав Дуплянкин 24 уровень, Сан-Франциско
28 декабря 2020, 18:52
А я наоборот решил не копипастить решение из первой задачи потому что решил ее не очень красиво. Все повторяющиеся действия, такие как перевод строки в дату, дату в строку, пол и пр. я вывел в отдельные методы. Добавил проверки на NullPointerException. Стремился к тому, чтобы в каждом кейсе switch не было лишних строк, а были лишь вызовы методов, а каждый вызываемый метод специализировался только на своей узкой области. То есть метод СreatePerson занимался только созданием оъекта, но для того, чтобы перевести строку в дату вызывал метод strToDate()... и т.п. В итоге код стал легко читаемым. Мне кажется, что если решая задачу, не писать ленейный код, который просто позволяет удовлетворить валидатор, а стремиться писать систему методов, которые взаимосвязаны между собой, и вызывают друг друга. То написаннный код потом будет легче понимать и масштабировать в большие проекты.
Филипп 22 уровень
25 декабря 2020, 19:41
Вдруг кому тоже пригодится. Заинтересовало как switch проверяет строки. Оказалось в строках переключатель использует String.equals(), причем подмечено, что генерируемый при этом байткод работает эффективнее, чем цепь if-then-else условий. Также, если возможно что в условие прилетят как строчные,( так и прописные буквы, то следует не забыть перевести строку в условии в один формат, например:
switch (month.toLowerCase())
Источник
Alexander Lapshin 18 уровень, Череповец
23 декабря 2020, 21:59
погорел на формате даты,
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
подходит для параметров -с и -u через sdf.parse(args[...])
Максим Дудин 19 уровень, Калининград
18 декабря 2020, 15:48
да ладно... она решилась прикиньте... прям сразу (просто я теперь перед проверкой сразу иду читать комментарии) всё как в прошлой, только через switch (так кстати предлагал сделать javarush в прошлой задаче) меня смущало вот это "Порядок вывода данных соответствует вводу данных. Обеспечить корректную работу с данными для множества нитей (чтоб не было затирания данных)." как это понимать?(может все варианты параметров должны перебираться и по очереди менять массив allPeople и всё это через организацию потоков... и фиг знает что ещё) Никак это понимать не нужно.... всё как в прошлой, только - через switch - с организацией перебора параметров (их там не сказано сколько поэтому у меня в каждом case организован цикл от 1 до args.length c шагом где i+=3, +4, где +1 в зависимости от передаваемого параметра) - в теле case все операции обернуть в synchronized ( allPeople)
Игорь PM в Москва
11 декабря 2020, 15:45
Сперва подумал, что у Диего крыша поехала, сбросил решение решённой задачи и заставил второй раз задачу с ключами запускать. :) Спать, спать, спать... Хакатон после.
Павел 23 уровень, Минск
5 декабря 2020, 19:29
Всегда! Внимательно! ЧИТАЙТЕ УСЛОВИЕ!!! Который раз уже горю на этом :( Задача работает с первой попытки, а валидатору вечно чего-то не хватает 😜
Maria Stepanova 18 уровень, Москва
2 декабря 2020, 19:21
Задачу решила, но не поняла зачем тут synchronized (allPeople), если все выполняется в одном потоке. Подскажите, если кто- то знает?)
Павел 23 уровень, Минск
5 декабря 2020, 13:26
Задел на будущее, видимо.
Kes Чайник в Банк
30 ноября 2020, 01:25
Как и во многих других задачах Валя пишет ошибку в стиле "Что-то не то". Пока пропустил задачу. В разделе помощь пока не получил ответа. Буду добивать задачу несколько месяцев или лет :)
Kes Чайник в Банк
30 ноября 2020, 01:27
Проблема задачи в том, что если проверять ее через сайт, то пишет "иди проверяй в Идею". При этом в идее нет никаких данных о том, на каких данных тестировалось решение.
Kes Чайник в Банк
2 декабря 2020, 02:19
Добил. Низкий поклон Артему и Ксении за долгое и скурпулезное консультирование по моему извращенскому решению.
Sergii-K 22 уровень, Ljubljana
23 ноября 2020, 12:46
Перемудрил и начал создавать нити и в run запускать отдельно созданные методы, а по факту нужно взять решение предыдущей CRUD со switch и завернуть в synchronized ...