如何使用' unique' Java和Objective-C的TotallyLazy库中的方法?
我有以下代码,但我无法完成,因为我不确定Callable1实例是如何传递到' unique'应该是组成的。这就是我到目前为止所拥有的:
seq
.sort(new Comparator<T>() {
@Override
public int compare(
final T pt1,
final T pt2
) {
return pt1.compareTo(pt2);
}
})
.unique(new Callable1<T,T>() {
@Override
public T call(final T pt) throws Exception {
final int result = pt.compareTo(..?);
return result != 0;
}});
正如你所看到的,我可以成功排序,但是当谈到&#34;结果= ...&#34;在&#39; unique&#39;打电话,我该怎么办?
答案 0 :(得分:4)
首先,对于排序,您应该使用提供的比较器之一:
seq.sort(Comparators.<T>ascending());
如果唯一性基于T的整体相等性,那么你可以只unique
没有参数。 unique
的重载允许根据T
的某些属性获取唯一序列。
例如,如果你有一个Sequence<User>
,你可以说我希望它们根据firstName
字段是唯一的:
class User {
String firstName, lastName;
User(...){...} // Constructor
}
sequence(new User("Chris", "Nash")).unique(user -> user.firstName)
TotallyLazy有广泛的测试来记录这些功能,但第一个开始的地方始终是SequenceTest,或者查看整个test package以获取更多示例。