繁体   English   中英

根据字段对ArrayList进行排序?

[英]Sorting an ArrayList based on a field?

嗨,我有一个包含一些对象的arrayList。另外我的对象还有两个字段(1)name(2)cost我想用其cost字段对这个arrayList进行排序。是否有任何特殊的方法可以为我做到这一点,或者我应该编写它如果还有某种方法可以做到这一点,那么它的时间复杂度(O(n),(O(nlogn)))是多少?

谢谢

如果您喜欢键入saftey(不使用BeanComparator),则需要编写自己的比较器。

例如

Collections.sort(list, new Comparator<SomeType>() {
    public int compareTo(SomeType lhs, SomeType rhs) {
        return lhs.getCost().compareTo(rhs.getCost());
    }
});

请注意,这不是null安全的(cost可以为null吗?)。

另一个选择是使用BeanComparator,但请确保添加一个测试,以确保在方法名称更改时排序始终有效。

如果为需要比较的对象实现Comparator接口,则可以使用Collections.sort()方法进行排序。

签出Bean Comparator几个选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM