集合contains无效
List<UserResVO> list = userResDao.list(null, queryVO);
LinkedList<UserResVO> result = new LinkedList<>(list);
List<Integer> userIds = baseMapper.getUserIds(depth, Integer.valueOf(orgId));
HashSet<Integer> targetHash = new HashSet<>(userIds);
Iterator<UserResVO> iterator = result.iterator();
while (iterator.hasNext()) {
UserResVO userResVO = iterator.next();
if (targetHash.contains(userResVO.getId())) {
iterator.remove();
}
}
在上面的代码中targetHash这个集合的泛型是Integer,而userResVO.getId()取到的值是Long类型,在这种情况下,去重无效
List<UserResVO> list = userResDao.list(null, queryVO);
LinkedList<UserResVO> result = new LinkedList<>(list);
List<Integer> userIds = baseMapper.getUserIds(depth, Integer.valueOf(orgId));
HashSet<Integer> targetHash = new HashSet<>(userIds);
Iterator<UserResVO> iterator = result.iterator();
while (iterator.hasNext()) {
UserResVO userResVO = iterator.next();
if (targetHash.contains(userResVO.getId().intValue())) {
iterator.remove();
}
}
这样就可以了,同为Integer类型时可以去重,但是好像同为Long类型时无效