我有一些对象的列表。我想先按一些属性和空值排序,比如在查询中:
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实现吗?
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条记录,然后再使用外部查询对该子查询的结果进行随机排序: