如何高效检测并移除列表列表中属于其他列表的子列表?
问题:移除作为其他列表连续子序列的重复列表(顺序敏感)
我有一个由带属性对象组成的列表的列表(对象包含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
相关产品推荐
相关产品推荐

