Не до конца понимаю, что именно не работает. Не знаю, может я уже заработался...
package com.javarush.task.task17.task1711;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/*
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) {
//start here - начни тут
switch (args[0]) {
case "-c" : {
if((args.length-1)%3 != 0) throw new IllegalArgumentException("Неверное количество аргументов");
for(int i=0; (i+3)<args.length; i+=3) {
synchronized(allPeople) {
allPeople.add(Person.create(args[1+i], args[2+i], args[3+i]));
}
System.out.println(allPeople.size()-1);
}
break;
}
case "-u" : {
if((args.length-1)%4 != 0) throw new IllegalArgumentException("Неверное количество аргументов");
for(int i=0; (i+4)<args.length; i+=4) {
synchronized(allPeople) {
allPeople.get(Integer.parseInt(args[1+i])).update(args[2+i], args[3+i], args[4+i]);
}
}
break;
}
case "-d" : {
for(int i=1; i<args.length; i++){
synchronized(allPeople) {
allPeople.get(Integer.parseInt(args[i])).delete();
}
}
}
case "-i" : {
for(int i=1; i<args.length; i++){
synchronized(allPeople) {
allPeople.get(Integer.parseInt(args[i])).print();
}
}
}
}
}
}