【发布时间】:2018-03-29 19:19:41
【问题描述】:
我面临着相当复杂的任务(至少对我而言)。假设我们有List<E>,E 有两个字段A 和B。列表可能有重复项。我们需要删除与A 字段重复的E 实例,并留下具有最多B 的实例(假设我们可以像一些原始类型一样比较它)。
示例:
输入: [{1; 1}, {1; 2}, {3; 4}, {3; 3}, {3; 1}, {2; 2}]
输出: [{1; 2}, {3; 4}, {2; 2}]
我想到的第一件事就是使用嵌套的for 循环,比如this。但首先我不确定在循环内删除列表节点是否会正常工作。其次,最好不要让内部for 迭代整个列表,而是从外部迭代器到列表末尾,在这种情况下,我们可能会发现外部迭代器比内部迭代器“小”,所以我们需要删除它,我再次不确定它是否会损害循环。
所以我的问题简而言之是:我们是否能够使用for 循环编写可靠的代码,您将如何实现它,或者您更喜欢什么其他设计。
【问题讨论】: