Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Hashmap中提取和打印特定值? 我这里有这个代码: 公共静态无效练习5e(){ List hilllist=Hills.readHills();_Java_Hashmap_Treemap - Fatal编程技术网

Java 如何从Hashmap中提取和打印特定值? 我这里有这个代码: 公共静态无效练习5e(){ List hilllist=Hills.readHills();

Java 如何从Hashmap中提取和打印特定值? 我这里有这个代码: 公共静态无效练习5e(){ List hilllist=Hills.readHills();,java,hashmap,treemap,Java,Hashmap,Treemap,公共静态地图>希尔斯比县(列出丘陵){ HashMap HashMap=newhashmap(); //List hilllist=Hills.readHills(); 适用于(h:HillList){ 字符串键=h.countryname; }否则{ Set=新树集(); 增加(h); hashMap.put(key,set); } } System.out.println(hashMap1); 返回hashMap1; } } 我的hashmap在列表中有(山名、国家名、高度、经度和纬度)的

公共静态地图>希尔斯比县(列出丘陵){

HashMap HashMap=newhashmap();
//List hilllist=Hills.readHills();
适用于(h:HillList){
字符串键=h.countryname;
}否则{
Set=新树集();
增加(h);
hashMap.put(key,set);
}
}
System.out.println(hashMap1);
返回hashMap1;
}
}
我的hashmap在列表中有(山名、国家名、高度、经度和纬度)的值,但是我只需要打印3个县,每个县的前3个山以及它们的高度。我如何才能做到这一点?

这就是你的方法的外观。我认为这是在没有实际代码的情况下最好的方法

    HashMap<String, Set<Hills>> hashMap = new HashMap<String, Set<Hills>>();
    // List<Hills> hillist = Hills.readHills();

    for (Hills h : hillist) {
        String key = h.countryname;

        } else {
            Set<Hills> set = new TreeSet<Hills>();
            set.add(h);
            hashMap.put(key, set);

        }

    }





    System.out.println(hashMap1);
    return hashMap1;
}
List hilllist=Hills.readHills();
Map hillsByCounty=Hills.hillsByCounty(HillList);
Set entrySet=hashMap.entrySet();
迭代器entryIterator=entry1.Iterator();
对于(int i=0;i<3;i++){
Map.Entry mapEntry=entryIterator.next();
System.out.println(“#####县:“+mapEntry.getKey());
设置hills=mapEntry.getValue();
对于(int j=0;j<3;j++){
希尔=迭代器.next();
System.out.println(hill.hillName+“”+hill.height);
}
}
}
}

hill.hillNamehill.height更改为hill name和hill height的任何变量名称。

应该在3个县后出现,因为OP只想打印3个县。老实说,是的,它正在工作,但在3个县后没有出现,它将一直持续到整个列表的末尾n:添加计数器,然后在每个迭代器之后增加它,并检查它是否=3。我编辑了我的答案,我再次更改了它,以便它使用您提供的代码中的迭代器。我想这是您的期望。可能是
    HashMap<String, Set<Hills>> hashMap = new HashMap<String, Set<Hills>>();
    // List<Hills> hillist = Hills.readHills();

    for (Hills h : hillist) {
        String key = h.countryname;

        } else {
            Set<Hills> set = new TreeSet<Hills>();
            set.add(h);
            hashMap.put(key, set);

        }

    }





    System.out.println(hashMap1);
    return hashMap1;
}
    List<Hills> hillist = Hills.readHills();
    Map<String, Set<Hills>> hillsByCounty = Hills.hillsByCounty(hillist);

    Set<Map.Entry<String, Set<Hills>>> entrySet = hashMap.entrySet();
    Iterator<Map.Entry<String, Set<Hills>>> entryIterator = entry1.iterator();
    for(int i = 0; i < 3; i++){
            Map.Entry<String, Set<Hills>> mapEntry = entryIterator.next();
            System.out.println("### County: " + mapEntry.getKey());
            Set<Hills> hills = mapEntry.getValue();
            for (int j = 0; j < 3; j++) {     
                    Hill hill = iterator.next();
                    System.out.println(hill.hillName + " " + hill.height);
                }
            }
        }
    }