将列表<整数\> 转换为列表<字符串>

新手上路,请多包涵

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

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

原文由 ChrisThomas123 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 405
2 个回答

据我所知,迭代和实例化是唯一的方法。类似的东西(对于其他人可能的帮助,因为我确定你知道如何做到这一点):

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

原文由 jsight 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 来自 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());

List 返回的 transform 是支持列表上的一个 _视图_——转换将应用于对转换列表的每次访问。

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

原文由 Ben Lings 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题