List<Object>转list<long>
时间: 2023-10-14 14:05:11 浏览: 169
要将一个 `List<Object>` 转换为 `List<Long>`,你可以遍历原始列表并逐个转换每个对象为 `Long` 类型,然后将其添加到新的列表中。以下是一个示例代码:
```java
List<Object> originalList = new ArrayList<>();
// 假设原始列表已经包含了一些对象
List<Long> convertedList = new ArrayList<>();
for (Object obj : originalList) {
if (obj instanceof Long) {
convertedList.add((Long) obj);
}
}
```
上述代码使用 `instanceof` 操作符来检查对象是否为 `Long` 类型,然后使用强制类型转换 `(Long)` 将其转换为 `Long` 对象,并将其添加到新的 `List<Long>` 中。
请注意,如果原始列表中的某些对象无法转换为 `Long` 类型,或者不是 `Long` 对象,那么在运行时会抛出 `ClassCastException` 异常。因此,在实际应用中,你可能需要添加适当的异常处理机制来处理此类情况。
相关问题
List<Object> 转 Map<Long,Object2>
好的,你要将一个List<Object>转换成一个Map<Long, Object2>,是吗?这里假设Object中有一个属性id,Object2中有一个属性id,且两个id的类型均为Long。那么你可以按照以下步骤进行转换:
1. 遍历List,取出每一个Object对象。
2. 将Object对象中的id属性值取出,并将该Object对象作为value,id属性值作为key,存入一个HashMap<Long, Object>对象中。
3. 遍历List,取出每一个Object2对象。
4. 将Object2对象中的id属性值取出,并在HashMap<Long, Object>对象中查找对应的value,将该Object2对象与对应的value合并。
5. 最终得到的HashMap<Long, Object>对象就是转换后的Map<Long, Object2>对象。
以下是示例代码:
```java
List<Object> list = new ArrayList<>();
Map<Long, Object2> map = new HashMap<>();
// 遍历List,将Object对象存入HashMap
for (Object obj : list) {
Long id = obj.getId();
map.put(id, obj);
}
// 遍历List,将Object2对象与HashMap中对应的Object对象合并
for (Object2 obj2 : list2) {
Long id = obj2.getId();
Object obj = map.get(id);
// 合并Object2对象和Object对象的属性
// ...
}
// 最终得到的map就是转换后的Map<Long, Object2>对象
```
List<Object> 转 Map<Long,Object2> java8 实现
好的,你想要使用Java 8的Stream API来实现将List<Object>转换成Map<Long, Object2>,是吗?假设Object中有一个属性id,Object2中有一个属性id,两个id的类型均为Long,可以按照以下方式实现:
```java
List<Object> list = new ArrayList<>();
Map<Long, Object2> map = list.stream()
.collect(Collectors.toMap(Object::getId, obj -> {
Object2 obj2 = new Object2();
obj2.setId(obj.getId());
// 将Object对象的属性转换为Object2对象的属性
// ...
return obj2;
}));
```
以上代码中,我们使用了Stream API的collect方法,将List<Object>转换成了Map<Long, Object2>。toMap方法的第一个参数是key的提取函数,使用Object::getId表示使用Object对象的id属性作为key。第二个参数是value的提取函数,使用lambda表达式来创建一个新的Object2对象,并将Object对象的属性转换为Object2对象的属性,最终返回该Object2对象作为value。
需要注意的是,如果List<Object>中有重复的id属性值,那么在转换成Map<Long, Object2>的过程中会抛出IllegalStateException异常,因为Map中不能有重复的key值。如果确定List<Object>中不存在重复的id属性值,可以使用toMap方法的第三个参数来指定当出现重复key值时的处理方式。