将字符串数组转换为整数列表?

时间:2018-09-26 03:43:17

标签: java arrays list arraylist type-conversion

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

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());

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

1 个答案:

答案 0 :(得分:1)

您只需流一次。

您应该使用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());