И никак не хочет выводить больше одного человека, несмотря на цикл.
package com.javarush.task.task17.task1711;
import java.text.DateFormat;
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>();
public static SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) {
switch (args[0]) {
case "-c": {
synchronized (allPeople) {
Date date = null;
for (int i = 1; i < args.length; i += 3) {
try {
date = dateFormat.parse(args[i + 2]);
} catch (Exception e) {
e.printStackTrace();
System.err.println("Некорректно введена дата рождения!");
}
if (args[i + 1].equals("м")) {
allPeople.add(Person.createMale(args[i], date));
System.out.println(allPeople.size() - 1);
} else if (args[i + 1].equals("ж")) {
allPeople.add(Person.createFemale(args[i], date));
System.out.println(allPeople.size() - 1);
} else {
System.err.println("Некорректно указан пол!");
}
}
}
}
case "-u": {
synchronized (allPeople) {
for (int i = 1; i < args.length; i += 4) {
Date date = null;
try {
date = dateFormat.parse(args[i + 3]);
} catch (Exception e) {
e.printStackTrace();
System.err.println("Некорректно введена дата рождения!");
}
allPeople.get(i).setName(args[i + 1]);
if (args[i + 2].equals("м")) {
allPeople.get(i).setSex(Sex.MALE);
} else if (args[i + 2].equals("ж")) {
allPeople.get(i).setSex(Sex.FEMALE);
} else {
System.err.println("Некорректно указан пол!");
}
allPeople.get(i).setBirthDate(date);
}
break;
}
}
case "-d": {
synchronized (allPeople) {
for (int i = 1; i < args.length; i++) {
allPeople.get(i).setName(null);
allPeople.get(i).setSex(null);
allPeople.get(i).setBirthDate(null);
}
break;
}
}
case "-i": {
synchronized (allPeople) {
DateFormat fmt = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
String sex = null;
for (int i = 1; i < args.length; i++) {
if (allPeople.get(i).getSex() == Sex.MALE) {
sex = "м";
} else if (allPeople.get(i).getSex() == Sex.FEMALE) {
sex = "ж";
}
System.out.println(allPeople.get(i).getName() + " " + sex + " " +
fmt.format(allPeople.get(i).getBirthDate()));
}
break;
}
}
}
}
}