2012-04-02 5 views
0

古い値を保持します最初の1から2段目と2行目に、それは古い値を保持し、」Attribute.applicationGroupMapを持っていません。HashMapのは、私は、クエリ</p> <p>から得た結果セットから行のセットを反復処理するシナリオを持って

誰もが、私はすべての繰り返しでHMAPを更新しない方法を教えてもらえます?

HMAPを返す

コード: -

try { 
       Document doc = convertToDocument(xmlStr); 

       String hashKey = ""; 
       String hashValue = ""; 

       NodeList listOfKeyValues = doc.getElementsByTagName("k"); 

       for (int s = 0; s < listOfKeyValues.getLength(); s++) { 

         Node firstNode = listOfKeyValues.item(s); 

         if (firstNode.getNodeType() == Node.ELEMENT_NODE) { 

           Element firstElement = (Element) firstNode; 

           NodeList keyList = firstElement.getChildNodes(); 
           hashKey = ((Node) keyList.item(0)).getNodeValue().trim(); 

           NodeList listOfvalues = doc.getElementsByTagName("v"); 

           Node secondNode = listOfvalues.item(s); 

           Element valueElement = (Element) secondNode; 

           NodeList valueList = valueElement.getChildNodes(); 
           if (valueList.getLength() != 0) { 
             hashValue = ((Node) valueList.item(0)).getNodeValue(); 
           } else { 
             hashValue = ""; 
           } 
           hsMap.put(hashKey, hashValue); 
         } 
       } 
     } catch (Throwable t) { 

       t.printStackTrace(); 
     } 
     return hsMap; 
} 
+4

HashMapを返すコードのバグのような感じです。あなたは私たちにそのコードを示すべきです。ところで、ジェネリックを使用していない理由は何ですか? –

+0

ジョン、それは戻って書かれた、すべての時間を変更する時間は、ちょうど不具合を修正しようとしています。ジェネリック医薬品の使用が良いと私は同意します。 –

+0

これは不完全なようです。 startOfMethodメソッドは無効で、何も返さず、何も使用しません。データを実際に使用しているコードは、どんなものであろうが、それを見ずに言うのは難しいだろう。 – James

答えて

0

コメントで会話をもとに、あなたは2つのオプションがあります。

変更XMLReadhsMapの宣言を

public HashMap hsMap = new HashMap(); 

に(未staticstartOfMethod、それはまたそれprivate作るために、より正確かもしれないが、それはあなたの問題に関連しません。)

- または -

「あなたの後にマップをクリアする

hmap.clear(); 

を行いますあなたが望むものを手に入れました。

1

hmap変数は、静的ではなく、メンバー変数であってはいけません。メソッドローカルでなければならず、メソッドは呼び出しごとに新しいメソッドを割り当てる必要があります。

タイトルのより正確なバージョンは「古い値を保持する古いHashMap」となります。

関連する問題