我想创建一个包含两个String值的HashMap。第一个字符串值是" Mode"并且第二个字符串值是某些" State"例如:
" TRACK"模式是"禁用"
我想创建一个具有多个已定义模式的HashMap,其中包含" State"与每个改变相关联的" ENABLED"或者"禁用"。这就是我到目前为止所做的:
public class SystemModeStatus{
private Map<String String> map = new HashMap<String,String>(){
{
put("MODE_A", "STATE");
put("MODE_B", "STATE");
put("MODE_C", "STATE");
}
};
public SystemModeStatus(Map<String, String> m){
this.map = m;
}
public Map<String, String> getMap(){
return this.map;
}
}
现在我想做的是检索/设置&#34;状态&#34;每个&#34; Mode&#34;。但是,我似乎无法找到正确的语法..我正确接近这个吗?有什么事情我做错了会让我的过程复杂化吗?
谢谢。
答案 0 :(得分:3)
首先,你应该删除select count(*) from report_tb where report_id in (select report_id from id_tmp)
方法,因为你想在内部地图上公开尽可能少的方法。
然后,您可以添加方法来更新地图中的值:
getMap()
此处有更多信息:https://docs.oracle.com/javase/8/docs/api/java/util/Map.html
答案 1 :(得分:2)
如果你想获得每个“模式”的“状态”,你可以使用foreach,如果你正在使用java8,你可以使用迭代器:
public static void printState(Map mp) {
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
System.out.println("State : "+ pair.getValue());
}
}
例如,在您的Main类中,您可以这样做:
SystemModeStatus systemModeStatue = new SystemModeStatus()
printState(systemModeStatue.getMap());