我正在用它来获取最新的物品。我如何才能做到这一点是null安全的,最后(最旧)的日期排序为null。createDt是一个joda LocalDate对象。
Optional<Item> latestItem = items.stream()
.sorted((e1, e2) -> e2.getCreateDt().compareTo(e1.getCreateDt()))
.findFirst();
如果Item
可能为,则使用@rgettman的解决方案。
如果LocalDate
可能为null,则使用以下代码:
items.stream()
.sorted(Comparator.comparing(Item::getCreateDt, Comparator.nullsLast(Comparator.reverseOrder())));
在任何一种情况下,请注意,sorted().findFirst()
由于大多数标准实现会首先对整个流进行排序,因此效率可能很低。您应该改用Stream.min。
所以我正在使用一些预先存在的比较器,它们比较两个元组中的某些值,如果第一个大于第二个,则返回true,否则返回false。这是其中之一的代码: 现在,我有一个字典,里面有许多上面比较的类型的元组条目。我想以相反的顺序对它们进行排序,但我真的不知道如何完成。我在想这样的事情: 但是我不知道向比较器传递什么,因为每个比较器都有两个参数(subInfo1、subInfo2)。我不能更改比较器函数。
我必须写一个程序 > 使用一个类ShopItem,其中一个项目的属性是:barCodeNumber、itemName、price和QuantityInStock。创建5个ShopItems实例(item1、item2、item3、item4和item5)的属性值为我自己的值。 为ShopItem使用一个比较器(BarcodeParator),它允许基于它们的barCodeNumber对ShopIt
问题内容: 在Go中进行日期比较是否有任何选择?我必须根据日期和时间- 独立地对数据进行排序。因此,我可以允许一个对象在一定日期范围内发生,只要它也在一定时间范围内出现即可。在此模型中,我不能简单地选择最旧的日期,最年轻的时间/最新的日期,最新的时间和Unix()秒来比较它们。我真的很感谢任何建议。 最终,我编写了一个时间解析字符串比较模块,以检查时间是否在范围内。然而,这并不顺利。我有一些大问题
哪个是检查两个对象是否相等的最佳方法,具有空安全功能?日期d1日期d2
我正试图根据员工的加入日期对他们的列表进行排序。下面是我的员工类。 下面是我的比较器类:
所以今年早些时候,我在大学里接到了一个任务。任务是使用OOP程序创建一个停车场管理系统。例如,我们学习了如何使用继承、抽象类和实例。我已经完成了并通过了这个作业,所以这个问题只是为了知识目的。其中一个任务是按时间顺序对对象的 Array 列表进行排序。为此,我们学习了可比/比较器方法。但是,我无法理解它,也无法做到这一点。问题是,我们必须对数组列表中的“Vehicle”对象中的“DateTime”