gpt4 book ai didi

java - 在Java中从具有不同大小的2个数组列表中查找不相似的元素

转载 作者:行者123 更新时间:2023-11-30 06:01:03 26 4
gpt4 key购买 nike

我有两个字符串类型的数组列表:

列出 -> [芒果、香蕉、苹果]

列表 b -> [男人,苹果]

我必须从两个列表中找出不相似的元素。

直到我实现了这个:

List d = new ArrayList(a);
toReturn.removeAll(b);
return d;

但是这段代码的问题是我不希望 Mango 因为列表 b 中的第一个元素包含“Man”字符串。我只想返回“Banana”。

最佳答案

您可以迭代一个列表并查找其中不是另一个列表的子字符串的项目,然后当然可以使用相反的参数进行相同的操作:

private static Stream<List> filterNonSimilar(List<String> a, List<String> b) {
return a.stream()
.filter(ai -> b.stream().noneMatch(bi -> ai.contains(bi) || bi.contains(ai));
}

public static List<String> nonSimilar(List<String> a, List<String> b) {
return Stream.concat(filterNonSimilar(a, b), filterNonSimilar(b, a))
.collect(Collectors.toList());
}

关于java - 在Java中从具有不同大小的2个数组列表中查找不相似的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52270195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com