java8及以后的写法:
List<CountCardDetailVo> all = new ArrayList<>();
//根据创建时间降序排序
all.sort(Comparator.comparing(CountCardDetailVo::getCreateTime).reversed());
//根据创建时间升序排序
all.sort(Comparator.comparing(CountCardDetailVo::getCreateTime));
Java8以前的写法:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* Created by IntelliJ IDEA
* 这是一个神奇的Class
*
* @author zhz
* @date 2019/9/25 10:37
*/
public class DemoTest {
public static void main(String[] args) {
TestA testA1 = new TestA("老张", 3);
TestA testA2 = new TestA("老李", 1);
TestA testA3 = new TestA("老王", 2);
List<TestA> list = new ArrayList<>();
list.add(testA1);
list.add(testA2);
list.add(testA3);
System.out.println("排序前--:"+list.toString());
Collections.sort(list, new Comparator<TestA>() {
@Override
public int compare(TestA o1, TestA o2) {
//升序
return o1.getAge().compareTo(o2.getAge());
}
});
System.out.println("升序排序后--:"+list.toString());
Collections.sort(list, new Comparator<TestA>() {
@Override
public int compare(TestA o1, TestA o2) {
//降序
return o2.getAge().compareTo(o1.getAge());
}
});
System.out.println("降序排序后--:"+list.toString());
}
}
Js对集合对象的某一属性的前端排序
//调用方法 ois为属性,siteName为第二属性 排序先按照第一属性在按照第二属性
rankData = rankData.sort(compare('ois', 'siteName'));
// 根据对象属性排序
function compare(property1, property2){
return function(a,b){
let value1 = a[property1];
let value2 = b[property1];
if(value1 && value2){
if(value1 == value2){
return a[property2] - b[property2];
}else{
return -(value1 - value2);
}
}else if(value1 && !value2){
return -1;
}else if(!value1 && value2){
return 1;
}else if(!value1 && !value2){
return a[property2] - b[property2];
}
}
}