起初,我认为这将是相当直接的。但我想不出一种有效的解决方法。我想到了一种暴力破解的方法,但那并不是很优雅。我有一个ArrayList。联系人是一个VO类,它有多个成员 - 名称、地区、ID。由于不同的地区出现多次,所以ArrayList中有重复项。该列表按ID排序。以下是一个示例:
条目0 - 名称:John Smith;地区:N;ID:1 条目1 - 名称:John Smith;地区:MW;ID:1 条目2 - 名称:John Smith;地区:S;ID:1 条目3 - 名称:Jane Doe;地区:NULL;ID:2 条目4 - 名称:Jack Black;地区:N;ID:3 条目6 - 名称:Jack Black;地区:MW;ID:3 条目7 - 名称:Joe Don;地区:NE;ID:4
我想将列表转换为下面的样子,通过组合相同ID的重复地区来合并它们。因此,最终列表应该只有4个不同的元素,其中包括合并后的地区。
因此,输出应该如下所示: 条目0 - 名称:John Smith;地区:N、MW、S;ID:1 条目1 - 名称:Jane Doe;地区:NULL;ID:2 条目2 - 名称:Jack Black;地区:N、MW;ID:3 条目3 - 名称:Joe Don;地区:NE;ID:4
你对解决这个问题的最佳方式有什么想法?我不是在寻找实际的代码,而是想要一些思路或提示来完成它。
感谢您的时间!
条目0 - 名称:John Smith;地区:N;ID:1 条目1 - 名称:John Smith;地区:MW;ID:1 条目2 - 名称:John Smith;地区:S;ID:1 条目3 - 名称:Jane Doe;地区:NULL;ID:2 条目4 - 名称:Jack Black;地区:N;ID:3 条目6 - 名称:Jack Black;地区:MW;ID:3 条目7 - 名称:Joe Don;地区:NE;ID:4
我想将列表转换为下面的样子,通过组合相同ID的重复地区来合并它们。因此,最终列表应该只有4个不同的元素,其中包括合并后的地区。
因此,输出应该如下所示: 条目0 - 名称:John Smith;地区:N、MW、S;ID:1 条目1 - 名称:Jane Doe;地区:NULL;ID:2 条目2 - 名称:Jack Black;地区:N、MW;ID:3 条目3 - 名称:Joe Don;地区:NE;ID:4
你对解决这个问题的最佳方式有什么想法?我不是在寻找实际的代码,而是想要一些思路或提示来完成它。
感谢您的时间!
TreeMap
在O(log N)
的时间内回答containsKey
。但是这个解决方案的时间复杂度为O(N log N)
,因此并不是最优的。 - polygenelubricants