【发布时间】:2013-08-23 09:08:18
【问题描述】:
我正在尝试将几个列表合并为一个,以消除重复项。 Guava 中的 mergeSorted 方法似乎适用于我的情况。但是当我尝试它时,我发现我得到一个关于我传递给方法的参数的编译错误。我的代码就是这么简单,我有两个列表,将它们连接成一个,然后尝试对其进行mergeSort,但是在第四行出现编译错误。
final List<Integer> first = Lists.newArrayList(1, 2, 3);
final List<Integer> second = Lists.newArrayList(4, 2, 5, 6);
Iterable<Integer> some = Iterables.concat(first, second);
final Iterable all = Iterables.<Integer>mergeSorted(some, comp);
System.out.println(all);
看起来它是 mergeSorted 期待 Iterable> iterables 但方法描述似乎表明输入可以是所有给定迭代的合并内容
@Beta public static
Iterable mergeSorted(Iterable extends 可迭代> 可迭代对象, 比较器比较器) 返回一个迭代所有给定迭代的合并内容。 不会对等价条目进行重复数据删除。
调用者必须确保源迭代是非降序的 排序,因为此方法不会对其输入进行排序。
【问题讨论】:
标签: java guava mergesort iterable