当前位置: 首页 > 知识库问答 >
问题:

先按某些属性null排序?

章宏恺
2023-03-14

我有一些对象的列表。我想先按一些属性和空值排序,比如在查询中:

select * from aaa order by ext_id nulls first;

我知道当我有字符串列表时,我可以这样做:

   List<String> names2 = Arrays.asList("XML", null, "Java", "HTML", "CSS");
    names2.sort(Comparator.nullsFirst(String::compareTo));

但是当我有一些类的对象列表时呢?

有什么建议我可以用java实现吗?

共有1个答案

许照
2023-03-14
public static void main(String[] args) {
    A a1 = new A();
    a1.setName("A");
    A a2 = new A();
    a2.setName("B");
    A anull = null;

    List<A> list = new ArrayList<>();
    list.add(a1);
    list.add(a2);
    list.add(anull);
    list.sort(nullsFirst(
            comparing(A::getName, nullsFirst(naturalOrder()))));
    list.forEach(System.out::println);

}

public static class A {
    String name;

    public String getName() {
        return name;
    }

    public void setName(final String name) {
        this.name = name;
    }
}
 类似资料:
  • 问题内容: 我正在尝试按属性对一些数据进行排序。这是我tought应该可以工作的示例,但事实并非如此。 HTML部分: JS部分: 结果: A-> AData B-> BData C-> C数据 …恕我直言,应如下所示: C-> C数据 B-> BData A-> AData 我是否错过了某些东西(可以在这里进行JSFiddle的实验)? 问题答案: AngularJS的orderBy过滤器仅支持

  • 问题内容: 我需要按日期/时间字段(例如)升序对PostgreSQL表进行排序last_updated。 但是,该字段允许为空或空,我想与空记录之前,非空。 这可能吗? 问题答案: 为该ORDER BY子句提供了关键字,以完全满足该需求: 一个典型的用例是使用降序排序(DESC),它会生成默认的升序(ASC)的完整反转,首先是空值。通常不理想-因此,将null值保持在最后: 要支持带有索引的查询,

  • 我有一个第三方域对象,我希望使用Jackson将其序列化为JSON。这里有很多可以通过公共getters访问的属性,但是我只对其中很小的一部分感兴趣。由于这是第三方对象,所以我选择了mixin路线。然而,除了mixin接口上定义的那些之外,我找不到一个好方法来排除原始类中的所有内容。我试图在mixin类上指定@JsonIgnoreProperties,但是它很快失去控制,忽略了大量的属性。有什么解

  • Json.net有没有办法只指定你想要序列化的属性?或者根据绑定标志序列化某些属性,比如只声明? 现在我正在使用< code > JObject。FromObject(MainObj。SubObj);要获取SubObj的所有属性,SubObj是遵循ISubObject接口的类的实例: 如果是,它将序列化A和B,但如果是,它将仅序列化B和C并忽略父属性

  • 问题内容: 我有一个包含以下对象数组的Josn文件: 我必须根据开始时间和计算机名称进行排序,并仅向用户显示这两件事。如果两个或多个任务的开始时间相同,则应根据计算机名称对这些任务的结果进行排序。我试图将解析后得到的JsonArray转换为List,然后使用自定义collections.sort。我朝着正确的方向前进吗?在启动时间相同的情况下,如何修改Collections.sort中的比较器以根

  • 问题内容: 是否可以按某个列以及RAND()对结果集进行排序? 例如: 谢谢你。 问题答案: 您正在执行的操作是有效的-它将按降序对结果进行排序,但会随机化领带的顺序。 但是,要执行所需的操作,您首先需要使用子查询来获取最新的100条记录,然后再使用外部查询对该子查询的结果进行随机排序: