List<Integer> 转List<Long>
时间: 2024-06-08 12:10:15 浏览: 170
要将List<Integer>转换为List<Long>,可以使用com.alibaba.fastjson包下的JSONArray类。首先,将List<Integer>转换为字符串形式,然后使用JSONArray.parseArray()方法将其转换为List<Long>。以下是示例代码:
```
List<Integer> listInt = new ArrayList<>();
listInt.add(1);
listInt.add(2);
listInt.add(3);
List<Long> listLong = JSONArray.parseArray(listInt.toString(), Long.class);
```
这样就可以将List<Integer>转换为List<Long>,而不需要使用循环。同样的方法也适用于将List<Long>转换为List<Integer>。希望对您有帮助!
相关问题
Java代码实现List<Integer>转成List<Long>
可以使用Java 8的Stream API来实现List<Integer>转成List<Long>:
```
List<Integer> intList = Arrays.asList(1, 2, 3, 4, 5);
List<Long> longList = intList.stream()
.map(Integer::longValue)
.collect(Collectors.toList());
```
首先,将List<Integer>转换成Stream<Integer>,然后使用map()方法将每个Integer转成对应的long值,最后使用collect()方法将Stream<Long>转成List<Long>。
Required type: Map <Long, List<Node>> Provided: Map <Integer, List<Node>> no instance(s) of type variable(s) exist so that Integer conforms to Long inference variable K has incompatible bounds: equality constraints: Long
这个错误提示表明在代码中使用了类型不匹配的 `Map` 类型。具体而言,代码期望一个 `Map<Long, List<Node>>` 类型的对象,但是实际传入的是一个 `Map<Integer, List<Node>>` 类型的对象,导致类型不匹配。
根据错误提示,可以看出是因为使用了类型推断时出现了问题。在 Java 中,类型推断是通过编译器自动根据上下文推断出表达式的类型,从而省略类型参数的过程。但是在这个例子中,编译器无法自动推断出正确的类型参数,因此出现了错误。
要解决这个问题,可以明确指定 `Map` 的类型参数,比如使用 `Map<Long, List<Node>>` 替代原来的 `Map` 类型。例如:
```
Map<Long, List<Node>> map = new HashMap<>();
```
或者在方法签名中指定泛型类型参数,比如:
```
public void myMethod(Map<Long, List<Node>> map) {
// ...
}
```
这样可以避免类型不匹配的问题。
阅读全文