转换 List<Integer> 到 List<String>

2022-08-31 09:12:19

我有一个整数列表,我想将所有整数对象转换为字符串,从而完成一个新的.List<Integer>List<String>

当然,我可以创建一个新的并循环访问每个整数的列表,但我想知道是否有更好(阅读:更自动)的方法?List<String>String.valueOf()


答案 1

使用来自Guava-Project的Google Collections,您可以使用Lists类中的方法transform

import com.google.common.collect.Lists;
import com.google.common.base.Functions

List<Integer> integers = Arrays.asList(1, 2, 3, 4);

List<String> strings = Lists.transform(integers, Functions.toStringFunction());

返回的 by 是后备列表上的视图 - 转换将应用于对转换后列表的每个访问。Listtransform

请注意,当应用于 null 时会抛出 a,因此只有在您确定列表不包含 null 时才使用它。Functions.toStringFunction()NullPointerException


答案 2

Java 解决方案 8.比番石榴长一点,但至少你不必安装库。

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

//...

List<Integer> integers = Arrays.asList(1, 2, 3, 4);
List<String> strings = integers.stream().map(Object::toString)
                                        .collect(Collectors.toList());

对于 Java 11,

List<String> strings = integers.stream().map(Object::toString)
                                        .collect(Collectors.toUnmodifiableList());

还是没有方便的方法,真的吗?map