首页 > 解决方案 > 将字符串数组转换为整数列表?

问题描述

这不是一个重复的问题,因为我特别要求将字符串数组转换为整数列表。换句话说,同时转换不同类型的列表和不同的对象类型。

import java.util.*;
import java.util.stream.Collectors;

String[] allAnswers = {"2", "4", "1"}

int[] allAnswersInts = Arrays.stream(allAnswers).mapToInt(Integer::parseInt).toArray();

List<Integer> allAnswerList = Arrays.stream(allAnswersInts).boxed().collect(Collectors.toList());

有没有更快或更实用的方法来做到这一点?

标签: javaarrayslistarraylisttype-conversion

解决方案


您只需要流式传输一次。

而不是 using int Integer::parseInt(String s),您应该使用Integer Integer::valueOf(String s),因此您不必调用boxed()或依赖自动装箱。

然后collect(Collectors.toList())直接使用,而不是先创建中间数组。

List<Integer> allAnswerList = Arrays.stream(allAnswers)    // stream of String
                                    .map(Integer::valueOf) // stream of Integer
                                    .collect(Collectors.toList());

推荐阅读