One way to optimize the above code is to use a Map to store the mapping between street codes and their respective counts. Here's an example:

Map<String, Integer> streetCounts = new HashMap<>(); for (OtherStreetVo streetVo : otherStreetCount) { streetCounts.put(streetVo.getStreetCode(), streetVo.getCount()); }

vo.setS1(streetCounts.getOrDefault("110108001", 0)); vo.setS2(streetCounts.getOrDefault("110108002", 0)); vo.setS3(streetCounts.getOrDefault("110108003", 0)); vo.setS4(streetCounts.getOrDefault("110108004", 0)); vo.setS5(streetCounts.getOrDefault("110108005", 0)); vo.setS6(streetCounts.getOrDefault("110108006", 0)); vo.setS7(streetCounts.getOrDefault("110108007", 0)); vo.setS8(streetCounts.getOrDefault("110108008", 0)); vo.setS10(streetCounts.getOrDefault("110108010", 0)); vo.setS11(streetCounts.getOrDefault("110108011", 0)); vo.setS12(streetCounts.getOrDefault("110108012", 0)); vo.setS13(streetCounts.getOrDefault("110108013", 0)); vo.setS14(streetCounts.getOrDefault("110108014", 0)); vo.setS15(streetCounts.getOrDefault("110108015", 0)); vo.setS16(streetCounts.getOrDefault("110108016", 0)); vo.setS17(streetCounts.getOrDefault("110108017", 0)); vo.setS18(streetCounts.getOrDefault("110108018", 0)); vo.setS19(streetCounts.getOrDefault("110108019", 0)); vo.setS20(streetCounts.getOrDefault("110108020", 0)); vo.setS21(streetCounts.getOrDefault("110108021", 0)); vo.setS22(streetCounts.getOrDefault("110108022", 0)); vo.setS23(streetCounts.getOrDefault("110108023", 0));

This code creates a HashMap called streetCounts and populates it with the street codes and their respective counts from the otherStreetCount list. Then, instead of using a series of if-else statements, we simply retrieve the count for each street code from the map using the getOrDefault method. If a street code is not present in the map, we default to 0. This approach is more concise and easier to read than the original code.

for0therStreetVo streetVo otherStreetCount if 110108001equalsstreetvogetStreetCode vosetS1streetV0getCount; else if 110108002equalsstreetVogetStreetCode vo setS2streetVogetCount ; else if 110108003eq

原文地址: https://www.cveoy.top/t/topic/bJEx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录