如何从数组中删除具有ID的arraylist中的项目。我试过了:
List <Group> loadedGroupList = iGroupRepository.findAll();
String [] groupIds = StringUtils.split(selectionGroupsIds, ',');
for (int i = 0 ; i < groupIds.length; i++) {
String groupId = groupIds[i];
loadedGroupList.removeIf(x -> x.getId() != Long.parseLong(groupId));
}
但是我得到一个空的arraylist。请帮忙。谢谢。
最佳答案
groupIds
是一个String
数组,将其转换为List<String>
并使用contains()
如果groupId在groupIds数组中,则从loadedGroupList中删除Group
loadedGroupList.removeIf(x -> Arrays.asList(groupIds).contains(x.getId()));
如果groupId不在groupIds数组中,则从loadedGroupList中删除
Group
loadedGroupList.removeIf(x -> !Arrays.asList(groupIds).contains(x.getId()));
通过使用
java-8
流,过滤Group
数组id
中没有String
的groupIds
List<Group> result = loadedGroupList.stream()
.filter(x->!Arrays.asList(groupIds).contains(x.getId()))
.collect(Collectors.toList());