hashMap里有键值对 Draft_dwg=abc、 Draft_pdf=cdf、Draft_wmf=gph
我现在如何把hashmap中的key得到,并且拼接成字符串的形式,比如字符串1得到 “Draft_dwg, Draft_pdf, Draft_wmf”
字符串2得到"abc,cdf,gph" 因为这两个字符串要插入到sql语句,insert into flat (字符串1) values (字符串2)

解决方案 »

  1.   

    Map map = new HashMap(); 
    Iterator iter = map.entrySet().iterator(); 
    while (iter.hasNext()) { 
        Map.Entry entry = (Map.Entry) iter.next(); 
        Object key = entry.getKey(); 
        Object val = entry.getValue(); 

      

  2.   


    public static void main(String[] args) {
    LinkedHashMap<String, String> map = new LinkedHashMap<>();
    map.put("Draft_dwg", "abc");
    map.put("Draft_pdf", "cdf");
    map.put("Draft_wmf", "gph");
    System.out.println(createInsertSQL(map, "flat"));
    }public static String createInsertSQL(Map<String, String> map, String table) {
    StringBuilder keys = new StringBuilder();
    StringBuilder values = new StringBuilder();
    boolean first = true;
    for (Entry<String, String> entry : map.entrySet()) {
    if (!first) {
    keys.append(", ");
    values.append(", ");
    }
    first = false;
    keys.append(entry.getKey());
    values.append("\"" + entry.getValue() + "\"");
    }
    return "insert into " + table + " (" + keys + ") values (" + values + ")";
    }
      

  3.   

    补充一下,map有个keySet方法可以得到所有的key,另sql语句的value是用单引号扩起来的Map<String, String> map = new LinkedHashMap<String, String>();
    map.put("Draft_dwg", "abc");
    map.put("Draft_pdf", "cdf");
    map.put("Draft_wmf", "gph");
    StringBuffer cols = new StringBuffer();
    StringBuffer vals = new StringBuffer();
    boolean first = true; for (String key : map.keySet())
    {
    if (!first)
    {
    cols.append(", ");
    vals.append(", ");
    }
    first = false;
    cols.append(key);
    vals.append("'" + map.get(key) + "'");
    }
    System.out.println("insert into   flat  (" + cols + ") values (" + vals+ ")");
      

  4.   


      Map<String, String> map = new HashMap<String, String>(); 

     map.put("Draft_dwg", "abc");
            map.put("Draft_pdf", "cdf");
            map.put("Draft_wmf", "gph");

    Set<String> keys = map.keySet() ; 
    Collection<String> values = map.values() ;

    System.out.println( keys ); 
    System.out.println( values );