0
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 包含需要根据特定条件比较的值。

4

2 回答 2

0

问题描述不是很清楚?如果一个条件为真,则您有if else分支语句,它不会查看 else 块中的代码。那是你的问题吗?

没有办法在您使用的同时比较两张地图if-else

于 2012-08-06T10:55:21.890 回答
0

嘿,您的建议仅此而已。如果键是 baMapMulti 或者键在 secMapMulti 中,您要么打印数据。如果在两个映射中都找不到该键,则“数据”将打印在查找的任一键中,或者根本不会打印。但是数据永远不会从哈希图查找中打印出来。但我不确定我是否回答了问题,因为问题不是很清楚。请编辑问题以获得正确答案。一个拙见是,以更清晰的方式命名您的地图(ba 和 sec 对我来说没有任何意义)。干杯。

于 2012-08-06T10:59:52.823 回答