首页 / JAVA / 遍历Java中的HashMap
遍历Java中的HashMap
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了遍历Java中的HashMap,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3427字,纯文字阅读大概需要5分钟。
内容图文
![遍历Java中的HashMap](/upload/InfoBanner/zyjiaocheng/659/ac006abea61d475680c19ded141d72af.jpg)
这个问题已经在这里有了答案: > How do I efficiently iterate over each entry in a Java Map? 39个
我正在尝试使用Processing和geoJSON创建一个Cholorpleth地图.我在遍历HashMap时难以检查要确定多边形颜色强度的属性.
目前,这是我的代码:
void draw() {
map.draw();
for (int i = 0; i < countyMarkers.size(); i++) {
Marker county = countyMarkers.get(i);
String pop = countyData.get("pop").toString();
println(i + "pop: " + pop);
}
我想做的是遍历我的HashMap countyData并获取每个条目的数量.使用if语句将其与一个值进行比较,然后根据正确的语句为其分配颜色.
我的HashMap可以在这里看到:
{name=Carlow, pop=54,612}
{name=Cavan, pop=73,183}
{name=Clare, pop=117,196}
{name=Cork, pop=519,032}
{name=Donegal, pop=161,137}
{name=Dublin, pop=1,273,069}
{name=Galway, pop=250,541}
{name=Kerry, pop=145,502}
{name=Kildare, pop=210,312}
{name=Kilkenny, pop=95,419}
{name=Laois, pop=80,559}
{name=Letrim, pop=31,796}
{name=Limerick, pop=191,809}
{name=Longford, pop=39,000}
{name=Louth, pop=122,897}
{name=Mayo, pop=130,638}
{name=Meath, pop=184,135}
{name=Monaghan, pop=60,483}
{name=Offaly, pop=76,687}
{name=Roscommon, pop=64,065}
{name=Sligo, pop=65,393}
{name=Tipperary, pop=158,754}
{name=Waterford, pop=113,795}
{name=Westmeath, pop=86,164}
{name=Wexford, pop=145,320}
{name=Wicklow, pop=136,640}
我对使用这种类型的数据还比较陌生,因此我对出错的地方一无所知.我认为我的逻辑是正确的,只是不确定如何实现.
我会很乐意为您提供帮助.
目前,这行-> println(i“ pop:” pop);
一遍又一遍地输出哈希图的最后一个条目.
这是我得到的输出
0pop: 136,640
1pop: 136,640
2pop: 136,640
3pop: 136,640
4pop: 136,640
5pop: 136,640
6pop: 136,640
7pop: 136,640
8pop: 136,640
9pop: 136,640
10pop: 136,640
11pop: 136,640
12pop: 136,640
13pop: 136,640
14pop: 136,640
15pop: 136,640
16pop: 136,640
17pop: 136,640
18pop: 136,640
19pop: 136,640
20pop: 136,640
21pop: 136,640
22pop: 136,640
23pop: 136,640
24pop: 136,640
25pop: 136,640
我使用此方法填充HashMap.
void getCountyDetails(List<Marker>m) {
countyData = new HashMap();
for (Marker county: countyMarkers) {
countyData.putAll(county.getProperties());
println(countyData);
}
}
修改后的代码在这里
Set<String> keySet = countyData.keySet();
for(String pop : keySet){
String value = countyData.get(pop).toString();
println("population:" + value);
}
现在它正在输出:
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
它似乎仍然没有遍历HashMap中的每个条目
填充HashMap的新方法
void getCountyDetails(List<Marker>m) {
countyData = new HashMap();
int i = 0;
for (Marker county: countyMarkers) {
countyData.put(i,county.getProperties());
i++;
}
}
解决方法:
从您的代码中,我们可以看到您正在使用countyData.get(“ pop”)-即您已经对该密钥进行了硬编码,因此它将始终返回一个相同的东西-与该密钥关联的值.
PS:您可以使用keySet中的键来遍历地图的所有元素:
Set<KeyClass> keySet = myMap.keySet();
for(KeyClass key : keySet){
ValueClass value = myMap.get(key);
//do stuff
}
您还应该注意,putAll方法将使用相同的键覆盖条目:
Copies all of the mappings from the specified map to this map (optional operation). The effect of this call is equivalent to that of calling put(k, v) on this map once for each mapping from key k to value v in the specified map
内容总结
以上是互联网集市为您收集整理的遍历Java中的HashMap全部内容,希望文章能够帮你解决遍历Java中的HashMap所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。