Всем привет! Код написал, код работает, валидатор не пропускает.
Говорит, при удалении не должен изменяться размер листа.массива. Что?? Почему?
Прошу подсказать не решение и не код, а объяснение, что от меня хотят в процессе удаления, что бы я затер имя, пол и дату на null?
Ведь данные можно либо удалить (элемент массива) либо затереть.испортить, какие могут быть еще варианты? И какой из них правильный?
package com.javarush.task.task17.task1710;
import org.w3c.dom.ls.LSOutput;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<Person>();
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) {
//start here - начни тут
switch (args[0]) {
case "-c":
//-c Миронов м 15/04/1990
Date birthDate = new Date();
try {
birthDate = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(args[3]);
}
catch (ParseException e) {
System.out.println("No correct date enter");
}
System.out.println(addPerson(args[1],args[2],birthDate));
break;
case "-u":
//-u 1 Миронов м 15/04/1990
Date birthDateForUpdate = new Date();
//System.out.println(args[3]);
try {
birthDateForUpdate = new SimpleDateFormat("dd/MM/yyyy").parse(args[4]);
}
catch (ParseException e) {
System.out.println("No correct date enter");
}
updatePerson(args[1],args[2],args[3],birthDateForUpdate);
break;
case "-d":
//allPeople.remove(Integer.parseInt(args[1]));
allPeople.set(Integer.parseInt(args[1])-1,null);
break;
case "-i":
//Миронов м 15-Apr-1990
Person person = allPeople.get(Integer.parseInt(args[1]));
String sex = person.getSex() == Sex.MALE ? " м " : " ж ";
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy",Locale.ENGLISH);
String newDate = format.format(person.getBirthDate());
System.out.println(person.getName() + sex + newDate);
break;
default:
System.out.println("default");
}
}
private static void updatePerson(String indexStringFormat, String name, String sex, Date birthDateForUpdate) {
int index = Integer.parseInt(indexStringFormat);
Person person = allPeople.get(index);
person.setName(name);
person.setSex(sex == "м" ? Sex.MALE : Sex.FEMALE);
person.setBirthDate(birthDateForUpdate);
allPeople.set(index, person);
//System.out.println(person.getName() + sex + birthDateForUpdate);
}
private static int addPerson (String name, String sex, Date birthDate) {
if (sex.equals("м")) {
allPeople.add(Person.createMale(name,birthDate));
}
else {
allPeople.add(Person.createFemale(name,birthDate));
}
return allPeople.size()-1;
}
}