【发布时间】:2015-11-12 00:06:20
【问题描述】:
这是我遇到的问题:
我需要比较两个 ArrayList 并返回它们是否相同或不同,返回其中一个的新元素,可以说是枢轴。
这是数据集的行为:
- 这两个 ArrayList 是由字符串组成的
- 它们是从同一来源填充的,因此大部分时间都是相同的
- 是有序的(就附加到它们的自定义逻辑而言)
- 永远不会有空字符串
- 所有字符串的长度始终相同
- 没有重复
我想要什么:
- 实现我的两个目标的最快方法,无论是哪种情况
- 仅使用 Java 1.6 标准库功能,我不希望实现一个混合类,例如模拟 List 和 Set 中的某些内容。
例子:
A: [ 'a', 'b', 'c', 'd']
B: [ 'a', 'c', 'd']
结果:列表不同,返回元素'b'; A 将是“工作”列表,我们将根据这个 ArrayList 中的新内容进行比较,因为 B 永远不会改变。
感谢您的任何回复和您的意见。
【问题讨论】:
-
ordered 是指这些列表按字母顺序排序,或者每个
List<String>中的元素遵循某种顺序,所以我们可以说list1.get(0).equals(list2.get(0))?跨度> -
你已经尝试了什么?
-
同一个字符串可以多次包含在一个列表中吗? (或者可以将它们转换为
Sets 而不会丢失信息?)。 @ 否决/接近投票者:给这个问题一个机会。这不是很好,但还有更糟糕的...... -
@Luigi:有序意味着它们在填充两个数组列表时,插入顺序与它们的“排序”顺序相同。它永远不会改变。每当一个新元素被引入其中一个 arrayLists 时,它总是比他旁边的下一个更小/更大。
标签: java algorithm arraylist data-structures set