static protected HashMap<String, String> secMapMulti = new HashMap<String, String>();
static protected HashMap<String, String> baMapMulti = new HashMap<String, String>();
static protected HashMap<String,PrintWriter> writeAndClientId = new HashMap<String,PrintWriter>();
static String client_id = "";
static PrintWriter pw_eq=null;
static String[] split_str_data;
static int data_length;
public static synchronized void serveAllWriters(String data) {
split_str_data = data.split(",");
data_length = data.indexOf('|');
for (Map.Entry<String, PrintWriter> entry : writeAndClientId.entrySet()) {
pw_eq = entry.getValue();
client_id = entry.getKey();
if (baMapMulti.containsKey(nse_eq_client_id + ":" + split_str_data[0])) {
pw_eq.println(data);
} else {
if (secMapMulti.containsKey(client_id + "-" + split_str_data[0])) {
data = data.substring(0, data_length + 1);
pw_eq.println(data);
}
}
}
}
有时两个HashMap都会被比较,有时只会比较hashmap的第一个值,发生一些奇怪的事情。两个Hashmap包含需要根据特定条件进行比较的值。
答案 0 :(得分:0)
问题描述不是很清楚?如果一个条件为真,你有if else
分支语句它不会查看else块中的代码。那是你的问题吗?
在使用if-else
答案 1 :(得分:0)
嘿,你的建议只是那个。如果键是baMapMulti,或者键位于secMapMulti中,则要么打印数据。如果在两个地图中都找不到钥匙,则“数据”将打印在查找键中的任何一个中,或者根本不打印。但是数据永远不会从hashmap查找中打印出来。但我不确定我是否回答了问题,因为问题并不是很清楚。请编辑问题以获得正确答案。一个不起眼的意见是,用更清晰的方式命名你的地图(ba和sec对我来说没有任何意义)。欢呼。