Java列表中如何根据列表中的对象某一属性或者多个属性值大小对列表进行排序呢?一般我们会想到冒泡排序等等算法 ,其实完全不需要,Collections基于二叉树排序算法的sort可以帮我们快速有效的进行排序。
Collections.sort(someObjList, new Comparator<SomeObject>() {
public int compare(SomeObject s1, SomeObject s2) {
return s1.getProperties().compareTo(s2.getProperties());
}
});
这里定义的对象属性是int型的。
然而如果你知道Lambda表达式的话,上面的代码只需要一行就好了
Collections.sort(list,(Object u1,Object u2)->(u1.compareTo(u2)));
是不是很诡异,哈哈!!(前提是SomeObject继承comparable或者实现了comparator接口)