Но у меня и так всё добавлено.
Уже break вставила внутрь synchronized.
Помогите, пожалуйста, сообразить
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>();
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) throws Exception {
//start here - начни тут
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
// System.out.println(args[0]);
switch (args[0]) {
case "-c": {
synchronized (allPeople) {
//System.out.println("Count: " + Count(args));
for (int i = 1; i < Count(args); i += 3) {
// System.out.println("Name: " + args[i] + " " + args[i+1] + " " + args[i+2]);
Date bd = f.parse(args[i + 2]);
if ("м".equals(args[i + 1])){
Person man;
man = Person.createMale(args[i], bd);
allPeople.add(man);
System.out.println(allPeople.indexOf(man));
}
else {
Person man;
man = Person.createFemale(args[i], bd);
allPeople.add(man);
System.out.println(allPeople.indexOf(man));
}
}
break;
}
}
case "-u": {
synchronized (allPeople) {
for (int i = 1; i < Count(args); i += 4) {
Person man = allPeople.get(Integer.parseInt(args[i]));
Date bd = f.parse(args[i + 3]);
man.setName(args[i + 1]);
man.setBirthDay(bd);
if ("м".equals(args[i + 2])) man.setSex(Sex.MALE);
else if ("ж".equals(args[i + 2])) man.setSex(Sex.FEMALE);
}
break;
}
}
case "-d": {
synchronized (allPeople) {
for (int i = 1; i < Count(args); i++) {
Person man = allPeople.get(Integer.parseInt(args[i]));
man.setBirthDay(null);
man.setName(null);
man.setSex(null);
}
break;
}
}
case "-i": {
synchronized (allPeople) {
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
for (int i = 1; i < Count(args); i++) {
Person man = allPeople.get(Integer.parseInt(args[i]));
String birthDay = format.format(man.getBirthDay());
String sex;
if (Sex.MALE.equals(man.getSex())) sex = "м";
else sex = "ж";
System.out.println(man.getName() + " " + sex + " " + birthDay);
}
break;
}
}
default: {
throw new Exception("Команда неправильная");
}
//System.out.print(allPeople);
}
}
private static int Count (String args[]){
int count = 0;
for (String str : args) {
if (str != null) count++;
else break;
}
return count;
}
}