Потратил уже больше 20 попыток наверное... Я читал комментарии и в целом могу понять как сделать так, чтоб работало, но я НЕ МОГУ понять почему не подходит мой вариант. Я потерял спокойный сон и у меня начинаются нервные припадкиХD Скажите, кто знает, в чем проблема, пожалуйста!
package com.javarush.task.task17.task1711;
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 2
*/
public class Solution {
public static volatile 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) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
String name;
Sex sex;
Date birthday;
Person p;
int i,a;
switch (args[0]) {
case "-c":
synchronized (allPeople){
i = 1;
while (!args[i].equals("")){
birthday = format.parse(args[i+2]);
p = (args[i + 1].equals("м")) ? Person.createMale(args[i], birthday): Person.createFemale(args[i],birthday);
allPeople.add(p);
i += 3;
System.out.println(allPeople.indexOf(p));//start here - начни тут
}
}
break;
case "-u":
synchronized (allPeople){
i =1;
while (!args[i].equals("")){
a = Integer.parseInt(args[i]);
birthday = format.parse(args[i+3]);
sex = (args[i+2].equals("м"))? Sex.MALE : Sex.FEMALE;
allPeople.get(a).setName(args[i+1]);
allPeople.get(a).setSex(sex);
allPeople.get(a).setBirthDay(birthday);
i += 4;
}
}
break;
case "-d":
synchronized (allPeople) {
i = 1;
while (!args[i].equals("")) {
a = Integer.parseInt(args[i]);
p = allPeople.get(a);
p.setName(null);
p.setSex(null);
p.setBirthDay(null);
i++;
}
}
break;
case "-i":
synchronized (allPeople){
SimpleDateFormat format1 = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
i=1;
while (!args[i].equals("")){
a = Integer.parseInt(args[i]);
p = allPeople.get(a);
System.out.println(p.getName() + " " + ((p.getSex()==Sex.MALE)? "м" : "ж") + " " + format1.parse(String.valueOf(p.getBirthDay())));
i++;
}
}
break;
}
}
}