You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效检测并移除列表列表中属于其他列表的子列表?

问题:移除作为其他列表连续子序列的重复列表(顺序敏感)

我有一个由带属性对象组成的列表的列表(对象包含name和value属性),需要找出并移除那些是另一个列表连续子序列的重复列表——列表元素的顺序至关重要。

伪代码示例(以字符串列表展示)

List<List<String>> listOfLists = [
    ["1", "2", "3", "4", "5", "6", "7", "8"], 
    ["3", "4", "5", "6", "7", "8"],
    ["5", "6", "7", "8"],
    ["7", "8"]
]

在这个示例中,需要移除所有较短的列表,因为它们都是更长列表的连续子序列。

类结构定义

public static class MyObjectBig {
    private String startElem;
    private String endElem;
    private List<MyObjectOne> list;
    
    // 构造方法、getter/setter等
}

public static class MyObjectOne {
    private String name;
    private String value;

    // 构造方法、getter/setter等
}

数据规模说明

  • 大型列表(所有MyObjectBig的list元素总数量)最多包含21000个元素
  • 单个MyObjectBig的list(小型列表)最多包含20个元素,通常约10个

现有尝试及问题

我曾尝试创建以列表首个元素为键、列表为值的Map,遍历进行元素匹配,但该方法速度极慢,希望获取优化提示或可行的实现思路。


内容的提问来源于stack exchange,提问作者user007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:41:03