2012-08-06 2 views
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에 모두 비교됩니다 및 해시 맵의 때때로 첫 번째 값은 이상한 일이 해시 맵이에 대비해야하는 값을 포함하는이 일어나고 비교됩니다 특정 조건의 기초./기능

답변

0

문제 설명이 명확하지 않습니까? 하나의 조건이 참일 경우 if else 브랜칭 문장을 가지고 있는데, else 블록의 코드를 살펴 보지 않을 것이다. 그게 당신 문제 인거야?

Theres는 당신이 if-else

0

이봐, 당신은 그 제안 사용으로 두지도를 동시에 비교 얻을 것이다 안돼. 키가 baMapMulti 인 경우 또는 키가 secMapMulti 인 경우 데이터를 인쇄 중입니다. "데이터"는 키 조회 중 하나에 인쇄되거나 키가 두 맵에서 발견되지 않으면 전혀 인쇄되지 않습니다. 그러나 데이터는 해시 맵 조회에서 인쇄되지 않습니다. 그러나 나는 질문에 대답했는지 확신 할 수 없다. 질문이 정말로 분명하지 않기 때문이다. 질문에 대한 정답을 편집하십시오. 한 가지 겸허 한 의견은지도를 좀 더 명확하게 이름을 짓는 것입니다 (바, 초는 내게 아무 의미도 없음).