【发布时间】:2018-03-03 19:01:18
【问题描述】:
不幸的是,我正在使用 Java 中的一些不太美味的数据结构,我的任务是在多值映射 (Map<Enum, List<String>>) 中删除我所谓的“垂直重复”,其中所有值 (List<String>) 的大小相同
这是我的意思的一个例子:
{
// Column : 1 2 3 4 5 6 7 8 9
NUMBER : [ "1", "2", "3", "1", "2", "3", "1", "2", "3" ],
LETTER : [ "A", "B", "C", "A", "E", "F", "G", "B", "I" ],
SYMBOL : [ "!", "!", "!", "!", "!", "!", "!", "!", "!" ],
...
}
“垂直重复”是指与任何前一列具有相同值的任何列。在上面的地图中,重复项将是列 [1,4](均具有值 1,A,!)和 [2,8](均具有值 2,B,!)。
上图的输出,删除“垂直重复”后:
{
// Previous Column:
// 1 2 3 5 6 7 9
NUMBER : [ "1", "2", "3", "2", "3", "1", "3" ],
LETTER : [ "A", "B", "C", "E", "F", "G", "I" ],
SYMBOL : [ "!", "!", "!", "!", "!", "!", "!" ],
...
}
有没有一种简单的方法可以删除“垂直重复”?我正在使用具有不同键集大小的多值映射(一个映射可能有 3 个不同的枚举键,另一个可能有 17 个不同的枚举键),以及不同的值集大小(一个映射可能包含每个列表一个大小为 2,另一个可能包含每个大小为 20 的列表)。
【问题讨论】:
标签: java dictionary data-structures