【发布时间】:2011-07-27 22:43:10
【问题描述】:
在我的单元测试课程中,我有两个列表。一个是expectedValue,另一个是returnedType。
我在做
Collections.sort(expected);
Collections.sort(returned);
但是如何根据其中一个元素的值类型比较两个列表?例如,我在两个列表中都有元素 sortOrder 并且它具有来自 1,2 or 3 的值所以我如何比较或说做类似 assertEqual(expected, returned) for both the list 的事情并确保两个列表具有相同的元素并且具有相同的 sortOrder 含义元素也是以正确的排序格式?
注意:我不应该使用任何外部库来做这件事。
更新
我的退货和预期清单示例:
excepted List = [Code: ANALYST, SortOrder: 2, Code: STREET, SortOrder: 1] 和
returned List = [Code: STREET, SortOrder: 1, Code: ANALYST, SortOrder: 2]
因此,这里非常基本的问题是如何根据其中一个元素值对列表进行排序,在我们的示例中,根据sortOrder 值,所以我们的预期应该是
excepted List = [Code: STREET, SortOrder: 1, Code: ANALYST, SortOrder: 2]
【问题讨论】:
-
问题描述很不清楚。您不能根据其中一个元素的值对集合进行排序——对集合进行排序会对其包含的所有值进行排序。并且您可以使用 list1.equals(list2) 非常轻松地测试两个列表是否包含相同顺序的相同值。
-
@JimN:列表集合可以根据其中一个元素的值进行排序,这可以使用比较器来完成
-
请解释一下你所说的“元素”和“价值”是什么意思。
-
上面列表中的
element指的是sortOrder,values指的是sortOrder的值,即1、2和3
标签: java list collections compare