Java集合 - 如何在集合中添加多个值?

时间:2013-06-04 22:29:19

标签: java collections hashmap guava

如何将多个值添加到multihashmap中,因为它不是genric。请参阅下面的代码。

请查看预期的输出: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); 
         }

这部分需要推送多哈地图,同时显示那些相互关联的(这是针对col1,col2,col3,col4。

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

1 个答案:

答案 0 :(得分: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);