如何将普通集合转为泛型集合
时间: 2024-10-25 08:00:57 浏览: 10
将普通集合转换为泛型集合通常涉及到两种情况:一种是在已有的非泛型集合上添加泛型约束,另一种是创建一个新的泛型集合并填充数据。
1. **添加泛型约束**:
如果你有一个`List<Object>`这样的普通列表,你可以通过强制类型转换将其转换为具体的泛型集合,例如`List<String>`,如下所示:
```java
List<Object> objectList = ...;
List<String> stringList = (List<String>) objectList; // 这是一个向下转型,不是推荐做法,因为存在空指针风险
```
2. **创建新的泛型集合**:
更安全的做法是创建一个新的泛型集合,并直接添加元素,避免强制转型。比如,如果你已经有了一组字符串,可以这样做:
```java
Collection<String> genericCollection = new ArrayList<>();
for (Object obj : objectList) {
if (obj instanceof String) { // 检查是否为String类型
genericCollection.add((String) obj);
}
}
```
或者,如果已有集合支持自动装箱(如Integer),可以直接用构造函数传递:
```java
List<Integer> intList = new ArrayList<>(objectList.stream()
.filter(o -> o instanceof Integer)
.mapToInt(Integer::intValue)
.collect(Collectors.toList()));
```
阅读全文