map<Integer,String> 取map所有不为空的value返回list
时间: 2024-02-22 13:56:36 浏览: 29
可以通过遍历Map的方式,找到所有不为空的value并添加到List中。以下是Java代码实现:
```java
Map<Integer, String> map = new HashMap<Integer, String>();
// 假设已经将map中的键值对添加完毕
List<String> list = new ArrayList<String>();
for (String value : map.values()) {
if (value != null && !value.isEmpty()) {
list.add(value);
}
}
// list中就是所有不为空的value
```
首先,我们创建了一个空的List,然后遍历Map的所有value,如果value不为空,就将其添加到List中。最后,List中就是所有不为空的value。
相关问题
map<Integer,String> 使用stream 取map所有不为空的value返回list
可以使用Java 8提供的Stream API来优雅地实现该功能。以下是代码示例:
```java
Map<Integer,String> map = new HashMap<>();
// 假设已经将map中的键值对添加完毕
List<String> list = map.values().stream()
.filter(value -> value != null && !value.isEmpty())
.collect(Collectors.toList());
// list中就是所有不为空的value
```
首先,我们使用`map.values()`获取Map中所有的value,并通过`stream()`方法将其转换为Stream。然后,使用`filter()`方法过滤出不为空的value,并最终使用`collect()`方法将其收集到List中。最后,List中就是所有不为空的value。
Map<Integer, List<SalePromotionForm>>转Map<Integer, List<String>>
您可以使用Java 8的Stream API和Collectors工具类来将Map<Integer, List<SalePromotionForm>>转换为Map<Integer, List<String>>。您可以按照以下步骤进行操作:
1. 导入所需的类:
```java
import java.util.Map;
import java.util.List;
import java.util.stream.Collectors;
```
2. 创建一个示例的Map<Integer, List<SalePromotionForm>>:
```java
Map<Integer, List<SalePromotionForm>> salePromotionMap = new HashMap<>();
// 假设salePromotionMap已经被填充了数据
```
3. 使用Stream API和Collectors.toMap()方法进行转换:
```java
Map<Integer, List<String>> result = salePromotionMap.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey, // 键保持不变
entry -> entry.getValue().stream()
.map(SalePromotionForm::toString) // 将SalePromotionForm对象转换为String
.collect(Collectors.toList()) // 将List<String>收集起来
));
```
这样,您就可以将Map<Integer, List<SalePromotionForm>>转换为Map<Integer, List<String>>,其中SalePromotionForm对象被转换为String对象。