我正在与Grails做一些工作,我不能通过其他部分来完成程序。我的代码如下
while (pois.hasNext()){
def poi=pois.next()
def site = Site.get(poi.site)
if (!sites.contains(site.id)){
sites.add([id:site.id.toString(),name:site.name])
}else{
println("It has been previously added")
}
}
我应该检查我的数据库
答案 0 :(得分:1)
如果此集合包含指定的元素,则返回true。更正式地,当且仅当此集合包含至少一个元素e时才返回true(o == null?e == null:o.equals(e))。
您的收藏集包含对 siteId:siteName
,并且您正在尝试检查它是否包含siteId
。
您应该再添加一个仅包含siteId
的集合。
或者,您将更改sites
上的Map
,您的代码将如下所示:
if (!sites.containsKey(site.id)){
sites.put(site.id.toString(), site.name)
}else{
println("It has been previously added")
}
或者,您应该检查集合中的所有元素。
def isExist = false;
for (def element: sites) {
if(elemtn.id == site.id) {
isExist = true;
}
}
if (!isExist){
sites.add([id:site.id.toString(),name:site.name])
}else{
println("It has been previously added")
}