背景:对外提供接口,返回的是去重后的数据(成员是java对象,使用HashSet),查询条件是多个,当传入的查询参数是唯一性的id时,实际上只会返回一条数据。有时候前端为了解析方便同时也是为了使返回的数据接口更清晰(需要一个简单实体,不需要去循环一个set),所以我们的控制层将数据解析成实体返回给前端。
set返回第一个元素:
Set<String> set = new HashSet<>();
set.add("set");
set.iterator().next();
特别地,当返回的set元素为空时,如此写法将产生异常:java.util.NoSuchElementException
Set<String> set = new HashSet<>();
//set.add("set");
set.iterator().next();
所以接口可能为空时,加上判断:
Iterator<String> it = set.iterator();
if(it.hasNext()) it.next();