将HashSet / Array添加到HashMap错误

时间:2016-10-17 14:03:32

标签: java hashmap

我是Java的初学者,我很难理解为什么我会收到错误。我有一个.csv文件,其中包含加拿大的城市,省份和人口。我一直在尝试读取文件,然后通过键/值对将PROVINCE和POPULATION值放入HashMap(cana)。我创建了一个HashSet(加拿大)来拆分.csv,如果可能的话我想保持原样。

我的问题是关于cana.add(provSet,pop1)。我在“put”周围找到了“找不到符号 - 方法添加(java.util.Set)错误,我无法弄清楚原因。有人可以帮我理解我做错了什么吗?既然我是初学者,非常感谢额外的解释!

String filename = "canada.csv";
    try
    {
        BufferedReader br = new BufferedReader(new FileReader("canada.csv"));
        String line = null;
        HashSet<String> canada = new HashSet<String>();
        HashMap<Set<String>, Set<Integer>> cana = new HashMap<Set<String>, Set<Integer>>();


        while((line=br.readLine())!=null) {               

            String city = line.split(",")[0];
                canada.add(city);

            String province = line.split(",")[1];
                canada.add(province);
                Set<String> provSet = new HashSet<String>(Arrays.asList(province));

            String population = line.split(",")[2];
                canada.add(population);
                int p = new Integer(population);
                Set<Integer> pop1 = new HashSet<Integer>(Arrays.asList(p));                             

            cana.add(provSet, pop1);    //ERROR                     

            //Trying to find the most populated province
            String maxProvince = "";
            int maxProvPop = 0;
            for(String province : cana.keySet()) {
              int provPop = cana.get(province);
              System.out.println(population);
                if( provPop > maxProvPop ) 
                {
                    maxProvPop = provPop;
                    maxProvince = province;
                }
                System.out.println("The most populated province is " + maxProvince + " with a population of " + maxProvPop);
            }

1 个答案:

答案 0 :(得分:0)

我认为你混淆了HashSetHashMap的方法。您对add使用HashSet方法,put使用HashMap方法。

HashSet Documentation

HashMap Documentation