“独特”如何在TotallyLazy库中工作

时间:2014-09-08 18:04:54

标签: java objective-c totallylazy

如何使用' 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;打电话,我该怎么办?

1 个答案:

答案 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以获取更多示例。