в принципе это же полный аналог первой задачи - в чем может быть проблема:?
добавляются только циклы.
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 int i=1;
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 input = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat output = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
Person f;
String s;
synchronized (args[0]) {
switch (args[0]) {
case "-c": synchronized (allPeople){
while ((!args[i].equals("")) || (args[i] != null)) {
if (args[i + 1].equals("м")) {
allPeople.add(f = Person.createMale(args[i], input.parse(args[i + 2])));
} else {
allPeople.add(f = Person.createFemale(args[i], input.parse(args[i + 2])));
}
System.out.println(allPeople.lastIndexOf(f));
i += 3;
}}
break;
case "-u":synchronized (allPeople){
while ((!args[i].equals("")) || (args[i] != null)) {
if (args[i + 2].equals("м")) {
allPeople.set(Integer.parseInt(args[i]), Person.createMale(args[i + 1], input.parse(args[i + 3])));
} else {
allPeople.set(Integer.parseInt(args[i]), Person.createFemale(args[i + 1], input.parse(args[i + 3])));
}
i += 4;
}}
break;
case "-d":synchronized (allPeople){
while ((!args[i].equals("")) || (args[i] != null)) {
allPeople.get(Integer.parseInt(args[i])).setBirthDate(null);
allPeople.get(Integer.parseInt(args[i])).setSex(null);
allPeople.get(Integer.parseInt(args[i])).setName(null);
i++;
}}
break;
case "-i":synchronized (allPeople){
while ((!args[i].equals("")) || (args[i] != null)) {
s = (allPeople.get(Integer.parseInt(args[i])).getSex().equals(Sex.MALE)) ? "м" : "ж";
System.out.print(allPeople.get(Integer.parseInt(args[i])).getName() + " "
+ s + " "
+ output.format(allPeople.get(Integer.parseInt(args[i])).getBirthDate()));
i++;
}}
break;
}
}
}
}