List<Integer> songListIds = listSongs.stream().map(e -> e.getSongListId()).collect(Collectors.toList());如何对songListId去重
时间: 2024-01-21 08:18:20 浏览: 62
你可以使用Java 8的Stream API中提供的distinct()方法对songListIds进行去重操作,具体代码如下:
```
List<Integer> distinctSongListIds = songListIds.stream().distinct().collect(Collectors.toList());
```
这样就可以得到一个去重后的List<Integer>了。
相关问题
List<IotUser> iotUserList = iotUserMapper.getIotUserList(null, null); Map<String, Map<Integer, List<IotUser>>> collect = iotUserList.stream().collect(Collectors.groupingBy(IotUser::getUserMobile, Collectors.groupingBy(IotUser::getUserType))); List<IotUser> result = null; collect.forEach((k,v)->{ v.forEach((a,b)->{ List<String> collect1 = b.stream().map(IotUser::getOrgUid).collect(Collectors.toList()); String collect2 = collect1.stream().collect(Collectors.joining(",")); IotUser iotUser = b.get(0); result.add(iotUser); }); });这段代码的解释及如何优化
这段代码是对一个 List<IotUser> 进行分组,按照用户手机号和用户类型进行分组,然后将每组中的机构 ID 拼接成一个字符串,最后将每组中的第一个元素添加到结果列表中。
为了优化这段代码,可以考虑使用并行流来提高效率,同时可以使用 ConcurrentHashMap 来替代普通的 HashMap,以提高并发性能。另外,在对每组进行操作时,可以使用 reduce 方法来避免创建中间集合,从而减少内存开销。
List<Integer> idList = rankSet.stream() .map(item -> Integer.valueOf(item.getValue().toString())).collect(Collectors.toList())
你的代码是将一个`rankSet`转换为一个整数列表`idList`,使用了Java 8中的流式操作。在代码中,你使用了`stream()`方法将`rankSet`转换为一个流,然后使用`map()`方法将流中的每个元素映射为整数类型,并使用`Integer.valueOf()`方法将元素的值转换为整数。最后,使用`collect()`方法将流中的元素收集到一个列表中,并使用`Collectors.toList()`指定列表类型为整数列表。
阅读全文