0

ジェネリックではないため、複数の値をマルチハッシュマップに追加する方法。以下のコードを参照してください。

予想される出力を見てください:Col1、col2、col3、col4の表示値の順序がcol5の順序と一致しません。マルチハッシュマップ内のすべての値を処理するようにアドバイスしてください。

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 

以下の一連のコードは期待どおりに機能しています (これは 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()));
4

1 に答える 1

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); 
于 2013-06-04T22:39:40.633 に答える