Javaの8配列からIDを持つのArrayListから項目を削除する方法

Alnbe:

配列から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()

削除しGrouploadedGroupListからのgroupIdがgroupIds配列である場合

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

削除しGrouploadedGroupListからのgroupIdがgroupIds配列でない場合

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=236210&siteId=1