检查哈希图的最后一个元素

时间:2018-07-14 12:31:10

标签: java dictionary hashmap

我想使用一个函数进行更新操作。因此,要创建SQL查询,我必须确保最后一个元素不会获取coma(,)

我尝试过

   public Boolean updateSingleClient(Map map, String id) {
        String updateSet = "";
        int count = 0;
        for (Object key : map.keySet()) {
            String value = (String) map.get(key);
            System.out.println("Count is " + count);
            count = count + 1;
            if (count == map.size()) {
                updateSet = updateSet + key + "='" + value + "'";
            } else {
                updateSet = updateSet + key + "='" + value + "',";
            }
        }

        System.out.println(updateSet);

        return false;
    }

有什么方法可以检查这是否是HashMap的最后一个元素? 因为此代码对我而言无法正常工作。

2 个答案:

答案 0 :(得分:1)

迭代中的最后一个元素将位于map.size() - 1,而不是map.size()

但是请注意,您可以通过将地图流式传输到Collectors.joining中来保存很多样板代码:

String result = 
    map.entrySet()
       .stream()
       .map(e -> e.getKey() + " = '" + e.getValue() + "'"
       .collect(Collectors.joining(","));

答案 1 :(得分:0)

您可以使用StringBuilder

  • StringBuilder上添加元素
  • 删除最后一个,

示例代码:

public Boolean updateSingleClient(Map map, String id) {
    StringBuilder updateSet = new StringBuilder();
    for (Object key : map.keySet()) {
        String value = (String) map.get(key);
        updateSet.append(key + "='" + value + "',"); 
    }
    updateSet.deleteCharAt(updateSet.lastIndexOf(","));
    System.out.println(updateSet);
    return false;
}