gpt4 book ai didi

java - 检查子列表是否在列表中

转载 作者:行者123 更新时间:2023-12-01 20:23:13 25 4
gpt4 key购买 nike

我有两个列表,L1 和 L2。我需要检查 L2 是否是 L1 的连续子列表。 L1 可能比 L2 更小或更大(但尺寸绝不会完全相同)。它们都是字符串列表,但是我需要检查 L1 中的元素是否包含 L2 中的元素(而不是直接相等)

有什么好的、简洁的方法可以做到这一点?目前我只有两个迭代器互相追逐,但这看起来不优雅

最佳答案

i设置为0。

迭代L1,检查是否有与L2[i]匹配的元素。当找到它时,增加i。如果找不到,请将其设置回 0。

如果i达到L2的长度,则您已在L1<中按顺序找到L2的内容.

public boolean containsInOrder(List<Foo> list, List<Foo> pattern) {
int i=0;
for(Foo item : list) {
if(Objects.equals(item,pattern.get(i))) {
i++;
} else {
i=0;
}
if(i == pattern.size()) {
return true;
}
}
return false;
}

关于java - 检查子列表是否在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44286656/

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