Stream流String转list
时间: 2023-10-17 12:56:52 浏览: 119
要将一个String转换为List,你可以使用Java 8中引入的Stream API。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StringToListExample {
public static void main(String[] args) {
String str = "apple,banana,grape,orange";
List<String> list = Arrays.stream(str.split(","))
.collect(Collectors.toList());
System.out.println(list);
}
}
```
在这个例子中,我们首先使用`split`方法将字符串按照逗号分隔成字符串数组。然后,我们使用`Arrays.stream`将数组转换为Stream。最后,我们使用`Collectors.toList`将Stream收集为List。
输出结果将是:`[apple, banana, grape, orange]`。
相关问题
stream流 String 转list
以下是使用Stream流将字符串转换为List的示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
String str = "12,54,65,87,22,65,48,56,58";
List<Integer> list = Arrays.stream(str.split(","))
.map(Integer::valueOf)
.collect(Collectors.toList());
System.out.println(list);
}
}
```
输出结果为:[12, 54, 65, 87, 22, 65, 48, 56, 58]
stream流list转listString
### 使用Java Stream API将 `List<Object>` 转换为 `List<String>`
在 Java 中,可以通过使用 Stream API 提供的 `map` 函数来实现这一目标。具体来说,`map` 方法允许我们对流中的每个元素应用指定的操作并返回一个新的流。以下是具体的实现方式:
通过调用 `dataItemList.stream()` 创建一个流之后,可以利用 `.map(item -> item.toString())` 或者自定义的方法(如 `item.getMobile()`),将每个对象映射为其对应的字符串表示形式。最后,通过 `Collectors.toList()` 收集结果。
代码示例如下:
```java
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<MyObject> dataItemList = ... ; // 初始化数据
// 将 List<MyObject> 转换为 List<String>
List<String> collect = dataItemList.stream()
.map(item -> item.getMobile())
.collect(Collectors.toList());
System.out.println(collect);
}
}
class MyObject {
private String mobile;
public String getMobile() {
return this.mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
}
```
上述代码展示了如何将 `List<MyObject>` 类型的数据结构转换为 `List<String>` 类型[^1]。
如果遇到的是嵌套列表的情况,则需要额外引入 `flatMap` 来处理内部的子列表。例如对于 `List<List<String>>` 数据类型的输入,可采用以下方法将其扁平化为单一层次的 `List<String>` 结构[^2]:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class NestedListExample {
public static void main(String[] args) {
List<List<String>> nestedList = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
List<String> flatList = nestedList.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(flatList); // 输出 ["a", "b", "c", "d"]
}
}
```
当需求涉及更复杂的场景比如基于某些字段进行分组操作时,还可以借助于 Collectors.groupingBy 和其他相关工具完成进一步加工[^4]。
#### 注意事项
- 如果源列表可能为空或者包含 null 值,在执行 map 操作前应考虑加入过滤逻辑以避免 NullPointerException。
阅读全文
相关推荐















