这写得啰嗦了。我的话先这样写:
for (CityDataVO cityItem: citys){
if (validateCityItem(cityItem, list)) {
continue;
}
List vo = new ArrayList<>();
vo.add(cityItem);
ProvinceDataVO province = new ProvinceDataVO();
province.setProvinceId(cityItem.getProvinceId());
province.setProvinceName(cityItem.getProvinceName());
province.setReportNum(cityItem.getCount());
province.setCityData(vo);
list.add(province);
}
...
private boolean validateCityItem(CityDataVO cityItem, List list) {
for(ProvinceDataVO proItem : list){
if (...) {
return true;
}
}
return false;
}
你的原代码有几个需要优化的地方:
尽量避免双重循环,内循环一般都应该提取出来;
对同一个变量的操作,代码行尽可能集中在一起,这样阅读起来更自然;
变量命名应当表现其业务含义和主要类型,比如 List 对象尽量都用 xxxList 方式命名。这我懒得给你改了。