首页
点滴
Java 8 流操作集合
### List转Map ``` /** * List -> Map * 需要注意的是: * toMap 如果集合对象有重复的key,会报错Duplicate key .... * apple1,apple12的id都为1。 * 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2 */ Map
appleMap = appleList.stream().collect(Collectors.toMap(Apple::getId, a -> a,(k1,k2)->k1)); // 这种转法当 键(key) 或 值(value)有空值时会报错 Map
excelRowsMap = excelRowsList.stream().collect(Collectors.toMap(ReceiveSelectDTO :: getNo, ReceiveSelectDTO :: getRemark)); // 可以这样解决 Map
excelRowsMap = excelRowsList.stream().collect(HashMap::new, (m, v) -> m.put(v.getNo(), v.getRemark()), HashMap::putAll); ``` ### list转map并统计元素个数 ``` List
list = Arrays.asList(1, 2, 1, 3, null, 4, 3, 5, 6, 3, null); Map
map = list.stream() .filter(Objects::nonNull) // 过滤掉 null 值 .collect(Collectors.groupingBy(e -> e, Collectors.counting())); ``` ### list按某个属性分组 ``` Map
> equipmentAlarmMap = equipmentAlarmList.stream().collect(Collectors.groupingBy(EquipmentAlarm::getColor)); ``` ### list抽出某个属性组成集合 ``` List
colorList = systemDTOList.stream().map(SystemDTO::getColor).collect(Collectors.toList()); ``` ### 循环次数 ``` // 不闭合,即 [0,3) IntStream.range(0, 3).forEach(i -> { System.out.println(i); // 输出 0,1,2 }); // 闭合,即 [0,3] IntStream.rangeClosed(0, 3).forEach(i -> { System.out.println(i); // 输出 0,1,2,3 }); ```
博客分类
源码解析 (1)
多线程 (5)
Java (10)
Linux (8)
Docker (9)
SpringBoot (14)
微服务 (1)
Redis (15)
MySQL (7)
VMware (3)
Nginx (15)
MyBatis (2)
RabbitMQ (1)
Git (7)
工具类 (12)
前端 (3)
友情链接
layui
© 2020-2025 www.chenhuazhan.com All Rights Reserved 备案号:
桂ICP备17004487号-1
粤公网安备44030002005146