今天做项目遇到一个合并两个List<Object>的问题,这两个List中有重复的值,需要将重复的值去掉。最初的想法是直接比较两个list中重复的值,不添加,只添加不重复的值,但是失败了,报出异常
原因是在遍历第二个List的时候,对第二个List进行了add操作,iterator中的modCount改变,Iterator认为这是不正确的,所以抛出异常。具体原因可以百度。
场景是:有两个权限组,这两个权限组的中菜单可能相同。而某个用户具有这两个权限,在查阅这个用户的权限的时候,如果两个权限组存在相同的菜单,会查出两次,在页面显示也会出现错误。需要对两个权限组进行数据的过滤,去掉重复的菜单权限。
利用map的特性,将list中所有的数据先存放到map中,然后在遍历map,存入list中。