case "-d": synchronized(allPeople){
int i = 1;
while(i < args.length)
delete(Integer.parseInt(args[i]));
i++;
}
public static void delete(int id){
allPeople.get(id).setBirthDate(null);
allPeople.get(id).setName(null);
allPeople.get(id).setSex(null);
}
не выходит именно из этого цикла, всё остальное кажись норм работает.....
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 create(String name, Sex sex, Date date){
if(sex == Sex.MALE) {
allPeople.add(Person.createMale(name, date));
}else{
allPeople.add(Person.createFemale(name, date));
}
System.out.println(allPeople.size() - 1);
}
public static void update(int id, String name, Sex sex, Date date){
switch(sex){
case MALE: allPeople.set(id, Person.createMale(name, date));
case FEMALE: allPeople.set(id, Person.createFemale(name, date));
}
}
public static void delete(int id){
allPeople.get(id).setBirthDate(null);
allPeople.get(id).setName(null);
allPeople.get(id).setSex(null);
}
public static void info(int id){
Person person = allPeople.get(id);
String name = person.getName();
char sex;
String date = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH).format(person.getBirthDate());
if(person.getSex() == Sex.MALE){
sex = 'м';
}else sex = 'ж';
System.out.println(name + " " + sex + " " + date);
}
public static void main(String[] args) {
//start here - начни тут
switch (args[0]) {
case "-c":
synchronized(allPeople) {
int i = 1;
while(i < args.length) {
Sex sex;
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(args[i + 2]);
if (args[i + 1].equals("м")) {
sex = Sex.MALE;
} else sex = Sex.FEMALE;
create(args[i], sex, date);
} catch (ParseException e) {
}
i = i + 3;
}
}
break;
case "-u":
synchronized(allPeople) {
Sex sexU;
int i = 1;
while(i < args.length) {
try {
Date dateU = new SimpleDateFormat("dd/MM/yyyy").parse(args[i + 3]);
if (args[i + 2].equals("м")) {
sexU = Sex.MALE;
} else sexU = Sex.FEMALE;
update(Integer.parseInt(args[i]), args[i + 1], sexU, dateU);
} catch (ParseException e) {
}
i = i + 4;
}
}
break;
case "-d": synchronized(allPeople){
int i = 1;
while(i < args.length)
delete(Integer.parseInt(args[i]));
i++;
}
break;
case "-i": synchronized(allPeople) {
int i = 1;
while(i < args.length) {
info(Integer.parseInt(args[i]));
i++;
}
}
break;
}
}
}