2017-12-01 22 views
0

​​ 私は2つのマップのリストを持っています。テーブル内のJavaのリストとテーブルの結果を比較する

List1=[{1=one,2=two},{1=three,2=two}] 
List2=[{1=one,2=twoss},{1=three,2=twoss}] 

私はリストのマップを比較しようとしており、テーブルフォームhtmlで取得しようとしています。私は希望のhtml形式を得ることができませんが。すべてのマップのキーは同じですが、値が異なる可能性があり、その下のヘッダーと値のキーをスクリーンとデータベースと比較して取得しようとしています。一致している場合は緑色に赤で囲みます。したがって、画面には2行のテーブル&ヘッダーがあります。データベースにも2つの行とヘッダーがあります。この値をマップのリストに格納して比較します。

public String compare(List<Map<String, Object>> list1, List<Map<String, Object>> list2) throws Exception { 
    StringBuilder tbe = new StringBuilder(); 
    String col = ""; 
    String screen = ""; 
    String db = ""; 
    if (list1.size() = list2.size()) { 
     for (int i = 0; i < list1.size(); i++) { 
      Map<String, Object> a = list1.get(i); 
      Map<String, Object> b = list2.get(i); 
      for (Map.Entry<String, Object> ent : a.entrySet()) { 
       col = col + "<th>" + entry.getKey() + "</th>"; 
       String k = ent.getKey(); 
       Object o1 = entry.getValue(); 
       if (o1.equals(b.get(key))) { 
        screen = screen + "<td bgcolor=green>" + o1 + "</td>"; 
        db = db + "<td bgcolor=green>" + b.get(entry.getKey()) + "</td>"; 
       } else { 
        screen = screen + "<td bgcolor=red>" + o1 + "</td>"; 
        db = db + "<td bgcolor=red>" + b.get(entry.getKey()) + "</td>"; 
       } 

      } 
      tbe.append("<tr><th>col</th>" + col + "</tr>"); 
      tbe.append("<tr><th>screen</th>" + screen + "</tr>"); 
      tbe.append("<tr><th>db</th>" + db + "</tr>"); 
      tbe.append("</table></html>"); 
      String tbel = tbe.toString(); 
      system.out.println(tbel); 
      return tbel; 
     } 
    } 
} 

私は--columnヘッダを探しています理想のO/Pは現在、私は繰り返しHTMLテーブルを取得しています一方、一度だけ印刷されます。

+0

あなたが何をしようとしているのか、それがなぜ機能していないのかを明確にしてください。 –

+0

@SamOrozcoは私が探しているものに画像を添付しています –

答えて

0
public static String compare(List<Map<String, Object>> list1, List<Map<String, Object>> list2) { 
     StringBuilder tbe = new StringBuilder(); 
     String col = ""; 
     String screen = ""; 
     String db = ""; 
     if (list1.size() == list2.size()) { 
      for (int i = 0; i < list1.size(); i++) { 
       Map<String, Object> a = list1.get(i); 
       Map<String, Object> b = list2.get(i); 
       for (Map.Entry<String, Object> ent : a.entrySet()) { 
        col = col + "<th>" + ent.getKey() + "</th>"; 
        String key = ent.getKey(); 
        Object o1 = ent.getValue(); 
        if (o1.equals(b.get(key))) { 
         screen = screen + "<td bgcolor=green>" + o1 + "</td>"; 
         db = db + "<td bgcolor=green>" + b.get(ent.getKey()) + "</td>"; 
        } else { 
         screen = screen + "<td bgcolor=red>" + o1 + "</td>"; 
         db = db + "<td bgcolor=red>" + b.get(ent.getKey()) + "</td>"; 
        } 

       } 
       tbe.append("<tr><th>col</th>" + col + "</tr>"); 
       tbe.append("<tr><th>screen</th>" + screen + "</tr>"); 
       tbe.append("<tr><th>db</th>" + db + "</tr>"); 
       tbe.append("</table></html>"); 
      } 
     } 
     return tbe.toString(); 
    } 

O/P:あなたのコードにコンパイル時のエラーを修正

<tr> 
    <th>col</th> 
    <th>1</th> 
    <th>2</th> 
</tr> 
<tr> 
    <th>screen</th> 
    <td bgcolor=red>One</td> 
    <td bgcolor=red>Two</td> 
</tr> 
<tr> 
    <th>db</th> 
    <td bgcolor=red>M2One</td> 
    <td bgcolor=red>M2Two</td> 
</tr> 
</table> 

</html> 

が私にこの出力を与えています。これはあなたが期待していることですか?

関連する問題