stream 流将一个LIST<object>转化成List<String>
时间: 2023-07-16 20:16:24 浏览: 129
你可以使用Java 8的Stream API将List<Object>转换为List<String>,示例代码如下:
```
List<Object> objects = Arrays.asList("hello", 123, true);
List<String> strings = objects.stream()
.map(Object::toString)
.collect(Collectors.toList());
System.out.println(strings); // ["hello", "123", "true"]
```
这里使用了Stream的map方法将每个对象转换为它的字符串表示形式,并使用collect方法将结果收集到一个List<String>中。
相关问题
将List<Object>转化为List<List<String>>
将`List<Object>`转换为`List<List<String>>`通常意味着你需要对`Object`类型的列表进行扁平化处理或元素解包。假设`Object`实际上是一个包含字符串的数组或者其他实现了`toString()`方法的列表(如`String[]`或`ArrayList<String>`),你可以通过遍历并添加每个元素到新列表中来实现这个转换。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public List<List<String>> convertToListOfLists(List<Object> objectList) {
List<List<String>> stringLists = new ArrayList<>();
for (Object obj : objectList) {
if (obj instanceof String[]) {
// 对于字符串数组
String[] strings = (String[]) obj;
stringLists.add(Arrays.asList(strings));
} else if (obj instanceof List<?>) {
// 对于其他列表
List<String> subList = ((List<?>) obj).stream().map(String::valueOf).collect(Collectors.toList());
stringLists.add(subList);
} else if (obj instanceof String) {
// 对于单个字符串
stringLists.add(Collections.singletonList((String) obj));
} else {
throw new IllegalArgumentException("Unsupported type: " + obj.getClass());
}
}
return stringLists;
}
```
在这个例子中,我们首先检查`Object`是否是字符串数组、列表或其他字符串类型。然后,我们根据类型将其转换为对应的`List<String>`并添加到结果列表中。
stream流 List<Map<String, Object>>转List<Map<String,List<String>>>
在Java中,如果你有一个`List<Map<String, Object>>`类型的集合,你可以通过Stream API将其转换为`List<Map<String, List<String>>>`,前提是你能确定`Object`类型确实是字符串,并且已经封装成了列表形式。这通常涉及到先过滤、然后收集的过程。下面是一个示例:
```java
import java.util.*;
import java.util.stream.*;
List<Map<String, Object>> originalMaps = ...; // 假设这是你的原始数据
List<Map<String, List<String>>> convertedMaps = originalMaps.stream()
.map(map -> map.entrySet().stream() // 遍历每个Map的entrySet
.flatMap(entry -> entry.getValue().stream() // 如果value是Object[] 或者 Stream流,则进一步处理
.filter(obj -> obj instanceof String) // 筛选出String类型
.map(String.class::cast) // 转换为String
.collect(Collectors.toList())) // 收集到一个新的List<String>
.collect(Collectors.toList()); // 将所有entry对应的String列表收集到新的Map中
阅读全文
相关推荐














