List<Reservable> poByDunList 这个集合怎么按照id为key 组成currenthashmap
时间: 2024-03-21 14:39:32 浏览: 51
可以使用 Java 8 的 Stream API 来构建一个 `ConcurrentHashMap`,实现将 `List<Reservable>` 按照 `id` 字段作为 key 组成 `ConcurrentHashMap` 的功能,代码如下:
```
List<Reservable> poByDunList = ...
ConcurrentHashMap<Integer, Reservable> map = poByDunList.stream()
.collect(Collectors.toConcurrentMap(Reservable::getId, Function.identity()));
```
这段代码会将 `poByDunList` 中的元素按照 `id` 字段作为 key 组成一个 `ConcurrentHashMap`,其中 key 的类型为 `Integer`,value 的类型为 `Reservable`。
需要注意的是,如果 `poByDunList` 中存在多个元素的 `id` 字段相同,那么会抛出一个 `IllegalStateException` 异常。如果你确定 `id` 字段不会重复,或者只需要保留其中一个重复元素,可以使用 `toConcurrentMap` 方法的其他重载方法来处理这种情况。
相关问题
List<Reservable> 对象自核按照字段date升序 stream
可以使用以下代码实现:
```
List<Reservable> reservables = ...
List<Reservable> sortedReservables = reservables.stream()
.sorted(Comparator.comparing(Reservable::getDate))
.collect(Collectors.toList());
```
这段代码会将 `reservables` 列表中的元素按照 `date` 字段升序排序,并将排序后的列表存储在 `sortedReservables` 变量中。
ConcurrentMap<Long, Reservable> reservableMap 怎么按key删除元素
可以使用 `ConcurrentMap` 接口提供的 `remove(Object key)` 方法来按照 key 删除元素,如下所示:
```
ConcurrentMap<Long, Reservable> reservableMap = ...
Long keyToDelete = ... // 要删除的 key
reservableMap.remove(keyToDelete);
```
这段代码会将 `reservableMap` 中对应 `keyToDelete` 的元素删除。如果 `keyToDelete` 不存在于 `reservableMap` 中,那么 `remove` 方法会返回 `null`,但不会抛出任何异常。
阅读全文