java 将一种类型的list 转换为另一种类型
时间: 2024-11-03 19:20:49 浏览: 83
java8 stream 由一个list转化成另一个list案例
在 Java 中,将一种类型的 List 转换为另一种类型通常涉及泛型、强制转换或者使用 Collection 的通用方法。以下是几种常见的转换方法:
1. 泛型转换:如果你有一个特定类型的 List,比如 `List<String>`,而你想将其转换为 `List<Integer>`,你可以创建一个新的 List 并指定目标类型:
```java
List<String> stringList = ...;
List<Integer> integerList = new ArrayList<>((Collection<? extends Number>) stringList);
```
这里利用了 `<? extends Number>` 来表示从 `String` 类型到所有 `Number` 子类的转换。
2. 利用 `instanceof` 和 `cast` 进行类型检查后再转换:
```java
if (stringList.stream().allMatch(String.class::isInstance)) {
List<Integer> integers = stringList.stream()
.mapToInt(Integer::valueOf)
.collect(Collectors.toList());
}
```
这种方法假设列表中的每个元素都能转换成整数。
3. 使用集合框架的通用方法 `Collections` 或者 `Stream API`:
```java
List<String> stringList = ...;
List<Integer> integers = Collections.list(stringList.stream().mapToInt(Integer::parseInt).boxed().collect(Collectors.toCollection(() -> new ArrayList<Integer>()))));
```
阅读全文