首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与CompareTo不同

与CompareTo不同
EN

Stack Overflow用户
提问于 2015-05-18 07:40:58
回答 1查看 54关注 0票数 1

根据情况,我每次都会尝试进行不同的比较。例如:我有一个名为Line的类,在这个类中有string name,int id和int扩展名,我希望能够通过它们的名称或id或扩展名来比较两个不同的Line对象。

EN

回答 1

Stack Overflow用户

发布于 2015-05-18 07:47:25

如果你有两个不同的比较模式,你可能需要两个不同的Comparator(或者一个可以配置的,例如,关于如何比较的构造函数参数)

代码语言:javascript
复制
public class LineNameComparator implements Comparator<Line> {
    @Override
    public int compare (Line a, Line b) {
        return a.getName().compareTo(b.getName());
    }
}

public class LineIdComparator implements Comparator<Line> {
    @Override
    public int compare (Line a, Line b) {
        return a.getIf().compareTo(b.getId());
    }
}

public class LineExtensionComparator implements Comparator<Line> {
    @Override
    public int compare (Line a, Line b) {
        return a.getExtension().compareTo(b.getExtension());
    }
}

..。然后根据您的需要使用它:

代码语言:javascript
复制
List<Line> list = ...

// Sort by name:
Collections.sort(list, new LineNameComparator());


// Sort by ID:
Collections.sort(list, new LineIdComparator());


// Sort by extension:
Collections.sort(list, new LineExtensionComparator());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30293258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档