我已经成功排序按照执行,
如果“类别”字段等于,则比较“排序”字段,如果“类别”字段不等于,则比较“id”字段。
List<Contact> originContactList = ...;
originContactList.sort((contact1, contact2) -> {
if (contact1.getCategory().compareTo(contact2.getCategory()) == 0) {
return contact1.getSort().compareTo(contact2.getSort());
} else {
return contact1.getId().compareTo(contact2.getId());
}
});
我想用java8list.stream(). sorted做上面的代码一样。可以吗?
如果“category”字段不等于,则无法比较“id”字段。
List<Contact> originContactList = ...;
originContactList.stream().sorted(
Comparator
.comparing(Contact::getCategory)
.thenComparingLong(Contact::getSort)
)
...
您也可以将第一个示例中的比较器用于流:
List<Contact> originContactList = ...;
originContactList.stream().sorted(
(contact1, contact2) -> {
if (contact1.getCategory().compareTo(contact2.getCategory()) == 0) {
return contact1.getSort().compareTo(contact2.getSort());
} else {
return contact1.getId().compareTo(contact2.getId());
}
})
但是:您编写的任何比较器都必须遵守一条基本规则:
如果它说从三个触点中,contactA
、
contactB
和
contactC
中,
contactA
应该在
contactB
之前排序,
contactB
应该在
contactC
之前排序,那么它还必须说
contactA
应该在
contactC
之前排序。
或者用比较器的JavaDoc的话来说。compare()
:
实现者还必须确保关系是可传递的:
((比较(x,y))
使用您的比较器实现,很容易创建违反此规则的三个联系人。
在输出的唯一一行上,打印一个整数,描述Alice必须给出的糖果的最小数量。 爱丽丝必须给的糖果数是1、2和1。 且每个子级的分级不大于10^5。
一、纯本地App 没任何服务请求,已经有开发好的一堆html+js,希望本地App中可以方便的使用,那可以参考默认的Native/X5工程,把自己开发好的资源放到www目录下就可以,注意工程的几个重要选项: 服务地址:http://localhost 首页: 假设你www中有一个入口的index.html,那写 /index.html 生成App包的向导中,“重新编译使用到的UI资源”一定不要选
一、纯本地App 没任何服务请求,已经有开发好的一堆html+js,希望本地App中可以方便的使用,那可以参考默认的Native/X5工程,把自己开发好的资源放到www目录下就可以,注意工程的几个重要选项: 服务地址:http://localhost 首页: 假设你www中有一个入口的index.html,那写 /index.html 生成App包的向导中,“重新编译使用到的UI资源”一定不要选
本文向大家介绍topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?相关面试题,主要包含被问及topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?时的应答技巧和注意事项,需要的朋友参考一下 可以增加 bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-co
本文向大家介绍topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?相关面试题,主要包含被问及topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?时的应答技巧和注意事项,需要的朋友参考一下 不可以减少,被删除的分区数据难以处理。
我收到了以下错误 有没有办法捕获它。 我尝试使用try and catch,但不工作的应用程序正在崩溃 我的代码 我的班级 完整错误代码