List endepot = endepot.stream().sorted(Comparator.comparing(DoctorTimeEntity::getCreateTime).reversed()).collect(Collectors.toList());
参考地址;https://www.cnblogs.com/caolixiang/p/11969042.html
根据属性A分组,然后取分组里属性B最大的值, 最后合并成list Map<String, IWLS_EnDepotEntry> collect = endepot.stream().collect( Collectors.groupingBy(IWLS_EnDepotEntry::getPurBCode, ...
//java stream 实现list分组求和后并取最大值
List<HitRuleConfig> list = new ArrayList<>();
list.add(new HitRuleConfig("1", "1", new BigDecimal(1), 1));
list.add(new HitRuleConfig("1", "1", new BigDe.
Java stream 处理分组后[升降序key]取每组最大一. 需求二. 整活
git仓库直达
如何让同事看不懂你写的代码 然后觉得你非常牛逼 这里用到了stream()与Lambda 需要有点基础,没基础你炫个????
一. 需求
有一组(K=V)类型的字符串,需要你将它按照key分组并找到每组最大的数字收集起来,key需要经过排序(升序或者降序)
List<String> numStr = Lists.newArrayList("aa=1", "bb=10", "cc=1111", "aa
import java.util.Comparator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java
List<User> userList =new ArrayList<User>();
userList.add(new User("1",1,"1","1"));
userList.add(new User("2",14,"1","2"));
userList.add(new User("12",41,"2","2"));
userList.add(new User(...
Map<String, List<Integer>> map = // 分组得到的Map
map.forEach((key, value) -> {
value.sort(Comparator.naturalOrder());
其中,`value.sort(Comparator.naturalOrder())`方法用于对值进行排序,`Comparator.naturalOrder()`表示使用自然排序方式。
此外,如果需要对值进行自定义排序,可以传入自定义的`Comparator`,例如:
```java
Map<String, List<Integer>> map = // 分组得到的Map
map.forEach((key, value) -> {
value.sort((a, b) -> {
// 自定义排序逻辑
注意,上述代码直接对原始List进行了排序,因此会修改原始数据。如果需要保留原始数据,可以使用`Collectors.toList()`方法创建一个新的List,然后对新的List进行排序。例如:
```java
Map<String, List<Integer>> map = // 分组得到的Map
Map<String, List<Integer>> sortedMap = map.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> {
List<Integer> newList = new ArrayList<>(e.getValue());
newList.sort(Comparator.naturalOrder());
return newList;
其中,`Collectors.toMap()`方法用于将排序后的List转换为Map。