Java中List<Long>和String互相转换
时间: 2024-09-12 07:16:35 浏览: 34
Java8 Lambda表达式详解及实例
5星 · 资源好评率100%
在Java中,由于Long是一个基本数据类型,而String是一个引用数据类型,它们之间直接的转换通常是不允许的。如果你有一个`List<Long>`(整数长列表),你想将其转换为`List<String>`(字符串列表),你需要将每个Long元素转换成对应的String形式。这通常通过调用`Long.toString()`方法来实现。
反之,如果你想从`List<String>`转换为`List<Long>`,则需要遍历字符串列表,对于每个有效的数字字符串,使用`Long.parseLong()`或`Long.valueOf()`尝试转换为Long。如果字符串不能成功解析为Long,转换过程可能会抛出NumberFormatException异常。
以下是简单的示例:
```java
// 将List<Long>转换为List<String>
List<Long> longList = Arrays.asList(1L, 2L, 3L);
List<String> stringList = longList.stream()
.map(Long::toString)
.collect(Collectors.toList());
// 将List<String>转换为List<Long> (假设所有字符串都是有效数字)
List<String> stringListWithNumbers = ...; // 获取一些数字字符串列表
List<Long> longListFromStrings = stringListWithNumbers.stream()
.mapToLong(String::toLong) // 或者 try-with-resources Long.parseLong()
.boxed() // 因为long到long的转换直接可以用,这里先box转为Long
.collect(Collectors.toList());
```
阅读全文