我有一个整数列表,List<Integer>
,我想把所有的整数对象转换成List<String>
,这样就完成了一个新的String。
当然,我可以创建一个新的List<String>
并遍历列表,为每个整数调用String.valueOf()
,但我想知道是否有更好的(阅读:更自动化)方法来做这件事?
发布于 2008-08-20 18:34:07
据我所知,iterate和instantiate是唯一的方法。例如(对于其他潜在的帮助,因为我相信你知道如何做到这一点):
List<Integer> oldList = ...
/* Specify the size of the list up front to prevent resizing. */
List<String> newList = new ArrayList<>(oldList.size());
for (Integer myInt : oldList) {
newList.add(String.valueOf(myInt));
}
发布于 2009-08-04 12:04:09
通过使用Google Collections from Guava-Project,您可以在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());
transform
返回的List
是支持列表上的一个视图-转换将应用于对转换后的列表的每次访问。
请注意,当应用于null时,Functions.toStringFunction()
将抛出NullPointerException
,因此只有在您确定列表中不包含null时才使用它。
发布于 2014-04-12 07:52:19
Java 8的解决方案。比Guava要长一点,但至少你不需要安装库。
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());
https://stackoverflow.com/questions/18524
复制相似问题