java - 如何在地图中获取键并输出一个键值是java中下一个键的输入
问题描述
我写了这段代码,但我没有得到正确的输出。
System.out.println(map.get(explain));
基本上,我的最终输出将是解释键的值。这是我的代码
package test;
import java.util.Map;
import java.util.Set;
public class Test {
public static void main(String[] args) {
String s = new String(
"http://fts-master.intermesh.net:8020/solr/im-search/select?mc1=%2285665%22&mc3=%2285665A%22&mc4=%2285665B%22&mc5=%2285665LS%22&mc6=%2285665SS%22&mc7=%2285665P%22&mcHigh=%22825%2096447%22&mcHighA=%22825A%2096447A%22&mcHighB=%22825B%2096447B%22&q=shopping%20bags&qt=im.search&ps=2&rows=500&start=0&lat=0&lon=0&spellcheck=true&fq=CustTypeWt:(149%20179%20199%20699%201199%201299%201399%201499)%20AND%20isphoto:true&fq=mcatid:(1224%20825%2085665%2096468%203078%2073252%2096447%205502%20185408%2085676%2096463%20191641%2096472%20139933%20186677%2094993%2099531%2065430%20106446%20129653%2096488%2096478%205575)%20titlex:(%22imswshopbagimsw%22)&fq=-glusrid:(398689)&fq=attribs:(locprefglobal%20locprefnational%20locprefcity%20locprefunknown)&ql1=%22shopbagimsw%22&boost=map(query(%7B!dismax%20qf=mcatid%20v=$mc3%20pf=%22%22%7D),0,0,map(query(%7B!dismax%20qf=mcatid%20v=$mc4%20pf=%22%22%7D),0,0,map(query(%7B!dismax%20qf=mcatid%20q.op=OR%20v=$mcHighA%20pf=%22%22%7D),0,0,map(query(%7B!dismax%20qf=mcatid%20q.op=OR%20v=$mcHighB%20pf=%22%22%7D),0,0,map(query(%7B!dismax%20qf=mcatid%20v=$mc1%20pf=%22%22%7D),0,0,1,1.31%20),6.0),8.0),13.0),19.0)&boost=map(query(%7B!dismax%20qf=mcatid%20v=$mc7%20pf=%22%22%7D),0,0,1,1.2)&boost=map(query(%7B!dismax%20qf=mcatid%20v=$mc5%20pf=%22%22%7D),0,0,map(query(%7B!dismax%20qf=mcatid%20v=$mc6%20pf=%22%22%7D),0,0,1,1.2),1.2)&boost=map(query(%7B!dismax%20qf=titlex%20v=$ql1%20pf=%22%22%7D),0,0,1,1.22)&boost=productqualityscore&debugQuery=true&fq=displayid:15004840733");
Map<String, Object> map = Utility.getResults(s);
System.out.println(map);
Set<String> keys = map.keySet();
for (String response : keys) {
System.out.println(map.get(response));
{
for (String debug : keys) {
System.out.println(map.get(debug));
{
for (String explain : keys) {
System.out.println(map.get(explain));
}
}
}
}
}
}
}
解决方案
我认为你正在尝试做这样的事情来代替嵌套的 for 循环 -
Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> debugMap = (Map<String, Object>) map.get("debug");
Map<String, Object> explainMap = (Map<String, Object>) map.get("explain");
Stream.of(explainMap.keySet().toString()).forEach(System.out::println);
推荐阅读
- scala - 自类型`this:T =>`和`this:T`有什么区别?
- ruby-on-rails - 使用 Searchkick (Rails) 为 Elasticsearch 创建单独的渗透器索引
- php - 我收到一条错误消息,说他们期待“;”
- android - 从 DatePickerFragment onDateSet 重新加载片段
- python-3.x - Polygons.contains() 不起作用(多边形有面积并且 is_valid = True)
- reactjs - 道具类型警告显示 `b` 而不是组件名称
- javascript - 如何使用正则表达式测试输入值?
- android - 使用 firebase 和 google-cloud-texttospeech 时重复类
- matlab - 具有一维约束的 fseminf
- java - @ComponentScan 和 @Component 背后的魔法