Java 8如何使用数组中的id从数组列表中删除项目

标签 java arraylist java-8

如何使用数组中的 id 从数组列表中删除项目。我尝试过:

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));
}

但是我得到一个空的数组列表。请帮忙。谢谢。

最佳答案

groupIdsString数组,将其转换为List<String>并使用contains()

删除 Group如果groupId在groupIds数组中,则来自loadedGroupList

loadedGroupList.removeIf(x -> Arrays.asList(groupIds).contains(x.getId()));

删除 Group如果groupId不在groupIds数组中,则从loadedGroupList

loadedGroupList.removeIf(x -> !Arrays.asList(groupIds).contains(x.getId()));

通过使用 java-8流,过滤器Group没有 idString数组 groupIds

List<Group> result = loadedGroupList.stream()
                                    .filter(x->!Arrays.asList(groupIds).contains(x.getId()))
                                    .collect(Collectors.toList());

关于Java 8如何使用数组中的id从数组列表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55876856/

相关文章:

java - 从 URL 读取 InputStream 并写入 HttpServletResponse 而不创建临时文件

google-app-engine - 在 Mac 上使用 App Engine 时出现问题 Java JRE

java - Android - 如何将 ArrayList 逐行写入文本文件并读回?

java-8 - 如何合并两个流并返回不同类型的列表?

java - Java 8 中 '()->{}' 的类型是什么?

java - 设计模式选择适当的常量值

java - 通过虚拟实现对派生类型的静态方法调用? (安卓)

java - Java 中的递归方法,返回一个整数数组列表(仅其中一个),其总和为一个数字,如果没有则为 null

java - 我尝试从键盘添加字符串后,数组列表返回空列表

Java Streams - 提取嵌套对象和组