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 の最初の値のみが比較される場合もあります。2 つの Hashmap には、特定の条件に基づいて比較する必要がある値が含まれています。

4

2 に答える 2

0

問題の説明がよくわかりませんか? 1 つの条件が true の場合、分岐ステートメントがif elseあり、else ブロックのコードを調べません。それがあなたの問題ですか?

使用しているときに両方のマップを同時に比較する方法はありませんif-else

于 2012-08-06T10:55:21.890 に答える
0

ちょっとあなたはそれだけを提案します。キーが baMapMulti の場合、またはキーが secMapMulti の場合は、データを印刷しています。「データ」は、ルックアップのいずれかのキーに出力されるか、両方のマップでキーが見つからない場合はまったく出力されません。ただし、両方のハッシュマップ検索からデータが出力されることはありません。しかし、質問が本当に明確ではないため、質問に答えたかどうかはわかりません。正しい答えのために質問を編集してください。1 つの謙虚な意見は、マップにもう少しわかりやすい名前を付けることです (ba と sec は私にとっては何の意味もありません)。乾杯。

于 2012-08-06T10:59:52.823 に答える