我想使用一个函数进行更新操作。因此,要创建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的最后一个元素? 因为此代码对我而言无法正常工作。
答案 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;
}