2013-06-04 84 views
0

如何將多個值添加到multihashmap中,因爲它不是genric。請參閱下面的代碼。Java集合 - 如何在集合中添加多個值?

請看它預期的輸出:Col1,col2,col3,col4顯示值的順序與col5順序不匹配。你能否建議我處理multihashmap中的所有值。

Iterator<Search> iterator = pre.iterator(); 
    MultiHashMap mhm = new MultiHashMap(); 
    StringBuilder sb = new StringBuilder(); 
    List list = null; 
    while(iterator.hasNext())  { 
     Search prer = (Search)iterator.next(); 
     String product = prer.getProduct(); 
     sb.append(prer.getreqsNbr()); 
     sb.append(" "); 
     sb.append(prer.getOp())); 
     sb.append(" "); 
     dependencies.put(product, sb.toString()); 
     sb.setLength(0); 

     ***//This is for col1,col2,col3,col4*** 

     prer.getProductNbr())); 
     prer.getProdDescr())); 
     prer.getreqsNbr())); 
     prer.getreqdescr())); 
     } 

    ***//This loop for get values as col5*** 

    Set set = mhm.entrySet(); 
    Iterator i = set.iterator(); 
    while(i.hasNext()) { 
     Map.Entry me = (Map.Entry)i.next(); 
     list=(List)mhm.get(me.getKey()); 
     int itemCount = list.size(); 
     for (int z = 0; z < itemCount; z++) { 
      String values = ""; 
      for(int j=0;j<list.size();j++) { 
       values += list.get(j);  } 
      System.out.println(me.getKey() + ": value :" + values); 
     } 

上面的程序輸出:

c1 c2 c3 c4 c5 
120 xxxx 12 xxx 14 
120 xxxx 13 xxx 14 
120 xxxx 14 xxx 14 
130 xxxx 14 xxx 12 13 14 

預期輸出:

Col1 col2 col3 col4 col5 
120 xxxx 12 xxxx 12 13 14 
120 xxxx 13 xxxx 12 13 14  
120 xxxx 14 xxxx 12 13 14 
130 xxxx 14 xxxx 14 

下面SETOF代碼工作正常(這對於COL5)。

Set set = mhm.entrySet(); 
    Iterator i = set.iterator(); 
    while(i.hasNext()) { 
     Map.Entry me = (Map.Entry)i.next(); 
     list=(List)mhm.get(me.getKey()); 
     int itemCount = list.size(); 
     for (int z = 0; z < itemCount; z++) { 
      String values = ""; 
      for(int j=0;j<list.size();j++) { 
       values += list.get(j);  } 
      System.out.println(me.getKey() + ": value :" + values); 
     } 

這部分需要推動multihash地圖和同時顯示那些被asociated彼此(這是爲COL1,COL2,COL3,COL4。

prer.getProductNbr())); 
prer.getProdDescr())); 
prer.getreqsNbr())); 
prer.getreqdescr())); 
+0

也許您可以包括您獲得的訂單以及您的預期訂單。 –

+0

當然,請給予幾分鐘。 – user2444474

+0

您的正確,這是org.apache.commons.collections.MultiHashMap; – user2444474

回答

1

此代碼將打印值多次

int itemCount = list.size(); 
    for (int z = 0; z < itemCount; z++) { 
     String values = ""; 
     for(int j=0;j<list.size();j++) { 
      values += list.get(j); 
     } 
     System.out.println(me.getKey() + ": value :" + values); 
    } 

你可能想是這樣的:

String values = ""; 
for(int j=0;j<list.size();j++) { 
    values += list.get(j) + " "; 
} 
System.out.println(me.getKey() + ": value :" + values); 
+0

已更新問題,請再看一遍。不便之處。 – user2444474