关键词搜索

源码搜索 ×
×

java中的list<entity>按降序排序

发布2019-07-17浏览6862次

详情内容

习惯了C#中的LINQ,在java中感到很不方便。要将一个实体数组(即元素为实体的数组)List进行排序,要怎么写呢?代码长的可笑:

实体类

public class Menu {

    private int id;
    private String name;
    private String title;
    private String url;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

假设现在有一个List

menus,想按照id的降序进行排序,要怎么写呢?

menus = menus
	.stream()
	.sorted(Comparator.comparing(Menu::getId).reversed())
	.collect(Collectors.toList());	
  • 1
  • 2
  • 3
  • 4

再看看C#

menus = menus.OrderByDescending(s => s.Id).ToList();	
  • 1

随着C#也能跨平台,是不是.NET的春天快到了?


2019.08.17
排序的时候,如果排序字段内容是数值,但字段类型是字符串,那么应该先转换成数值再比较,否则结果不准确。如何转换呢,可以这样写:

.sorted(Comparator.comparing(s -> Long.parseLong(s.getT())))
  • 1

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载