前言
转载自:http://t.zoukankan.com/eternityz-p-13683897.html
代码示例
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 测试对象
* </p>
*
* @author: sunqilong
* @date: 2022/6/9 下午6:17
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SortObj {
//姓名
private String name;
//权重
private Integer weights;
//预约率
private BigDecimal rate;
//id
private Long id;
public static void main(String[] args) {
List<SortObj> list = new ArrayList<>();
list.add(new SortObj("老1", 20, new BigDecimal(10), 1l));
list.add(new SortObj("老2", 30, new BigDecimal(20), 2l));
list.add(new SortObj("老3", 40, new BigDecimal(30), 3l));
list.add(new SortObj("老4", 100, new BigDecimal(99), 4l));
list.add(new SortObj("老5", 100, new BigDecimal(97), 5l));
list.add(new SortObj("老6", 10, new BigDecimal(10), 6l));
System.out.println("排序结:" + list);
list = list.stream()
.sorted(
Comparator.comparing(SortObj::getWeights).reversed()
.thenComparing(SortObj::getRate)
.thenComparing(Comparator.comparing(SortObj::getId).reversed())
).collect(Collectors.toList());
System.out.println(JSONObject.toJSONString(list));
}
}