写在前面: 昨天晚上写好的代码,今天来写一篇 blog 记录之

2020 年 赛迪 发布了 (昨天发布的) 最新版本的中国百强县名单 https://weibo.com/1988800805/JdiymbgOD

aZpQVs.png使用 json 数据 + Java 代码 简单按照 拥有最多百强县省份 排了个序 下面是 输出结果

2020---全国百强县---各省都有多少个

江苏省: 26个, 经济最发达的县(市、旗)是: 昆山市
浙江省: 18个, 经济最发达的县(市、旗)是: 慈溪市
山东省: 15个, 经济最发达的县(市、旗)是: 龙口市
湖北省: 7个, 经济最发达的县(市、旗)是: 大冶市
福建省: 6个, 经济最发达的县(市、旗)是: 晋江市
河南省: 6个, 经济最发达的县(市、旗)是: 新郑市
湖南省: 4个, 经济最发达的县(市、旗)是: 长沙县
安徽省: 3个, 经济最发达的县(市、旗)是: 肥西县
辽宁省: 3个, 经济最发达的县(市、旗)是: 瓦房店市
陕西省: 2个, 经济最发达的县(市、旗)是: 神木市
新疆维吾尔自治区: 2个, 经济最发达的县(市、旗)是: 库尔勒市
内蒙古自治区: 2个, 经济最发达的县(市、旗)是: 准格尔旗
河北省: 2个, 经济最发达的县(市、旗)是: 迁安市
贵州省: 1个, 这个县(市、旗)是: 仁怀市
江西省: 1个, 这个县(市、旗)是: 南昌县
广东省: 1个, 这个县(市、旗)是: 博罗县
云南省: 1个, 这个县(市、旗)是: 安宁市

排名数据

ranking: 1, county: 昆山市, province: 江苏省
ranking: 2, county: 江阴市, province: 江苏省
ranking: 3, county: 张家港市, province: 江苏省
ranking: 4, county: 晋江市, province: 福建省
ranking: 5, county: 常熟市, province: 江苏省
ranking: 6, county: 长沙县, province: 湖南省
ranking: 7, county: 太仓市, province: 江苏省
ranking: 8, county: 慈溪市, province: 浙江省
ranking: 9, county: 义乌市, province: 浙江省
ranking: 10, county: 龙口市, province: 山东省
ranking: 11, county: 宜兴市, province: 江苏省
ranking: 12, county: 胶州市, province: 山东省
ranking: 13, county: 海门市, province: 江苏省
ranking: 14, county: 荣成市, province: 山东省
ranking: 15, county: 福清市, province: 福建省
ranking: 16, county: 余姚市, province: 浙江省
ranking: 17, county: 浏阳市, province: 湖南省
ranking: 18, county: 诸暨市, province: 浙江省
ranking: 19, county: 海宁市, province: 浙江省
ranking: 20, county: 宁乡市, province: 湖南省
ranking: 21, county: 乐清市, province: 浙江省
ranking: 22, county: 石狮市, province: 福建省
ranking: 23, county: 南安市, province: 福建省
ranking: 24, county: 泰兴市, province: 江苏省
ranking: 25, county: 温岭市, province: 浙江省
ranking: 26, county: 如皋市, province: 江苏省
ranking: 27, county: 瑞安市, province: 浙江省
ranking: 28, county: 启东市, province: 江苏省
ranking: 29, county: 桐乡市, province: 浙江省
ranking: 30, county: 迁安市, province: 河北省
ranking: 31, county: 丹阳市, province: 江苏省
ranking: 32, county: 海安市, province: 江苏省
ranking: 33, county: 靖江市, province: 江苏省
ranking: 34, county: 滕州市, province: 山东省
ranking: 35, county: 如东县, province: 江苏省
ranking: 36, county: 惠安县, province: 福建省
ranking: 37, county: 溧阳市, province: 江苏省
ranking: 38, county: 准格尔旗, province: 内蒙古自治区
ranking: 39, county: 寿光市, province: 山东省
ranking: 40, county: 新郑市, province: 河南省
ranking: 41, county: 诸城市, province: 山东省
ranking: 42, county: 南昌县, province: 江西省
ranking: 43, county: 仁怀市, province: 贵州省
ranking: 44, county: 神木市, province: 陕西省
ranking: 45, county: 东台市, province: 江苏省
ranking: 46, county: 邳州市 (pī zhōu shì), province: 江苏省
ranking: 47, county: 平度市, province: 山东省
ranking: 48, county: 莱州市, province: 山东省
ranking: 49, county: 平湖市, province: 浙江省
ranking: 50, county: 三河市, province: 河北省
ranking: 51, county: 巩义市, province: 河南省
ranking: 52, county: 招远市, province: 山东省
ranking: 53, county: 长兴县, province: 浙江省
ranking: 54, county: 仪征市, province: 江苏省
ranking: 55, county: 邹城市, province: 山东省
ranking: 56, county: 闽侯县, province: 福建省
ranking: 57, county: 嘉善县, province: 浙江省
ranking: 58, county: 肥城市, province: 山东省
ranking: 59, county: 兴化市, province: 江苏省
ranking: 60, county: 宁海县, province: 浙江省
ranking: 61, county: 伊金霍洛旗, province: 内蒙古自治区
ranking: 62, county: 新密市, province: 河南省
ranking: 63, county: 肥西县, province: 安徽省
ranking: 64, county: 东阳市, province: 浙江省
ranking: 65, county: 永城市, province: 河南省
ranking: 66, county: 荥阳市 (xíng yáng shì), province: 江苏省
ranking: 67, county: 扬中市, province: 江苏省
ranking: 68, county: 济源市, province: 河南省
ranking: 69, county: 沛县, province: 江苏省
ranking: 70, county: 玉环市, province: 浙江省
ranking: 71, county: 瓦房店市, province: 辽宁省
ranking: 72, county: 大冶市, province: 湖北省
ranking: 73, county: 广饶县, province: 山东省
ranking: 74, county: 醴陵市 (lǐ líng shì), province: 湖南省
ranking: 75, county: 莱西市, province: 山东省
ranking: 76, county: 新泰市, province: 山东省
ranking: 77, county: 宜都市, province: 湖北省
ranking: 78, county: 沐阳县, province: 江苏省
ranking: 79, county: 仙桃市, province: 湖北省
ranking: 80, county: 邹平市, province: 山东省
ranking: 81, county: 高邮市, province: 江苏省
ranking: 82, county: 句容市, province: 江苏省
ranking: 83, county: 临海市, province: 浙江省
ranking: 84, county: 射阳县, province: 江苏省
ranking: 85, county: 永康市, province: 浙江省
ranking: 86, county: 苍南县, province: 浙江省
ranking: 87, county: 海城市, province: 辽宁省
ranking: 88, county: 潜江市, province: 湖北省
ranking: 89, county: 庄河市, province: 辽宁省
ranking: 90, county: 长丰县, province: 安徽省
ranking: 91, county: 安宁市, province: 云南省
ranking: 92, county: 肥东县, province: 安徽省
ranking: 93, county: 博罗县, province: 广东省
ranking: 94, county: 枣阳市, province: 湖北省
ranking: 95, county: 库尔勒市, province: 新疆维吾尔自治区
ranking: 96, county: 汝州市, province: 河南省
ranking: 97, county: 汉川市, province: 湖北省
ranking: 98, county: 昌吉市, province: 新疆维吾尔自治区
ranking: 99, county: 枝江市, province: 湖北省
ranking: 100, county: 府谷县, province: 陕西省

部分代码
FileUtil.java

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

/**
 * @author hellodk
 * @Description
 * @date 2020/7/28, 0028 19:33
 */

public class FileUtil {

    public static String readFile(String path) throws FileNotFoundException, UnsupportedEncodingException {
        BufferedReader reader = null;
        StringBuffer sb = new StringBuffer();
        try {
            FileInputStream fileInputStream = new FileInputStream(path);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            reader = new BufferedReader(inputStreamReader);
            String tempString;
            while ((tempString = reader.readLine()) != null) {
                sb.append(tempString);
            }
            reader.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            if (reader != null) {
                try {
                    reader.close();
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return sb.toString();
    }
}

Top100County.java

import com.alibaba.fastjson.JSON;

import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author hellodk
 * @Description
 * @date 2020/7/28, 0028 19:02
 */

public class Top100County {
    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
        String path = "E:\\personal-projects\\TestJava\\src\\json\\top100.json";
        String jsonContent = FileUtil.readFile(path);
        List<County> counties = JSON.parseArray(jsonContent, County.class);
//        for (County item : counties) {
//            System.out.println(item.toString());
//        }
        Map<String, Integer> map = new HashMap<>();
        for (County item : counties) {
            String province = item.getProvince();
            if (map.containsKey(province)) {
                Integer value = map.get(province);
                map.put(province, ++value);
            }
            else {
                map.put(province, 1);
            }
        }
//        for (Map.Entry<String, Integer> entry : map.entrySet()) {
//            System.out.println(entry.getKey() + " " + entry.getValue());
//        }
        List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
        list.sort(new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                return o2.getValue() - o1.getValue();
            }
        });
        System.out.println("2020---全国百强县---各省都有多少个");
        System.out.println();
        for (Map.Entry<String, Integer> entry : list) {
            // 该省份有多少个百强县
            int count = entry.getValue();
            String currentProvince = entry.getKey();
            String displayCounty = mostProsperousCounty(currentProvince, counties);
            if (count > 1) {
                System.out.println(currentProvince + ": " + count + "个, 经济最发达的县(市、旗)是: " + displayCounty);
            }
            else {
                System.out.println(currentProvince + ": " + count + "个, 这个县(市、旗)是: " + displayCounty);
            }
        }

    }

    /**
     * 计算 该省份 经济最发达的县 市 旗
     *
     * @param currentProvince
     * @param counties
     */
    private static String mostProsperousCounty(String currentProvince, List<County> counties) {
        String mostProsperousCounty = "";
        for (County item : counties) {
            String province = item.getProvince();
            if (currentProvince.equalsIgnoreCase(province)) {
                mostProsperousCounty = item.getCounty();
                break;
            }
        }
        return mostProsperousCounty;
    }
}

本文中使用的原始 json 文件 可以从此处预览: https://paste.ubuntu.com/p/2FxRQgcQ8w/

上面的 json 在 ubuntu paste 上设置了永不过期 但不排除 会过期的可能。参考这篇回答: Ubuntu paste上的代码保存多长时间? https://www.zhihu.com/question/265590742

end.