如何将List<String> 转为Map<Long, String>
时间: 2023-10-14 09:09:19 浏览: 102
可以使用Java 8的Stream API和Collectors工具类来将List<String>转为Map<Long, String>,具体代码如下:
```
List<String> list = Arrays.asList("1:a", "2:b", "3:c");
Map<Long, String> map = list.stream()
.map(s -> s.split(":"))
.collect(Collectors.toMap(
arr -> Long.parseLong(arr[0]),
arr -> arr[1]
));
```
这里先将每个字符串按照":"进行分割,得到一个包含两个元素的数组,然后使用Collectors.toMap方法将这个数组转为Map<Long, String>,其中第一个元素作为键,第二个元素作为值。注意,如果列表中有重复的键,会抛出IllegalStateException异常。如果需要处理重复键的情况,可以使用Collectors.toMap的第三个参数来指定合并函数。
相关问题
java如何把List<String>转为List<Long>
可以使用Java 8的Stream API来将List<String>转换为List<Long>。以下是示例代码:
```java
List<String> stringList = Arrays.asList("1", "2", "3", "4", "5");
List<Long> longList = stringList.stream()
.map(Long::valueOf)
.collect(Collectors.toList());
```
首先,我们将需要转换的List<String>初始化为一个字符串列表。然后,我们使用Stream API的map()方法将字符串列表中的每个元素转换为Long类型的数字。最后,我们使用collect()方法将结果收集到新的List<Long>中。
请注意,在使用map()方法时,我们使用了Java 8中的方法引用(Long::valueOf),这相当于将每个元素传递给valueOf()方法进行转换。
有一个List<String> 集合,如何用java8的stream来实现List<String> 转List<Long>
可以使用Java 8的Stream API的map方法将List<String>转换为List<Long>。具体实现方式如下:
```java
List<String> stringList = Arrays.asList("1", "2", "3", "4", "5");
List<Long> longList = stringList.stream()
.map(Long::valueOf)
.collect(Collectors.toList());
```
在上面的代码中,我们首先使用Arrays.asList方法创建了一个包含一些字符串的List<String>对象。接着,我们调用了stream方法将List<String>转换为Stream<String>对象,并使用map方法将每个字符串转换为Long类型。最后,我们使用collect方法将Stream<Long>对象转换为List<Long>对象。
需要注意的是,这个转换过程可能会抛出NumberFormatException异常,如果字符串无法转换为Long类型的话。因此,在实际应用中,可能需要加入一些异常处理的代码来保证程序的健壮性。
阅读全文