if (planSuccessServices.contains(value)) {
   service.put("choose", "yes");
}
successServices.add(service);

if (planFailServices.contains(value)) {
   service.put("choose", "yes");
}
failServices.add(service);


此时将会导致,两次add的service其实是同一个引用,所以后一个的状态修改会影响到前一个

解决办法:

if (planSuccessServices.contains(value)) {
   service.put("successchoose", "yes");
}
successServices.add(service);

if (planFailServices.contains(value)) {
   service.put("failchoose", "yes");
}
failServices.add(service);