为创建一个对象列表

雷根迪

我想知道创建List对象的最佳方法是什么

我能想到的是将二手车转换RangeList

val objs: List[String] =
  for (i <- 1.to(100).toList)
    yield new String("" + i)

或将整个结果转换为wit toList

val objs: List[String] =
  (for (i <- 1 to 100 )
    yield new String("" + i)).toList

但是它们对我来说看起来都不够流畅。有没有更简单的方法可以做到这一点?变量必须是类型,List因为它在我正在处理的代码中的其他地方使用。提前致谢!

dhg

您可以toList直接在Range上使用

(1 to 100).toList

要将Ints转换为String,只需toString在Range上使用并映射它:

(1 to 100).map(_.toString).toList

此外,您的使用new String("" + i)确实是多余的。该表达式"" + i 已经是一个字符串,因此您实际上是在现有字符串的基础上制作一个新的字符串。因此,您应该只使用现有的String!

如果您确实喜欢的"" + i语法比更好toString,则至少应该这样做:

(1 to 100).map("" + _).toList


编辑:根据您对真正希望摆脱toList通话的评论,您可以使用breakOut通过查看预期的类型(在此处等号的左侧指定)并直接创建这种类型的集合,可以起作用。这样做的好处是,它避免了在创建map之前创建中间集合(来自List,但这比较麻烦。

val xs: List[String] = (1 to 100).map(_.toString)(breakOut)

或者,如果您需要"" + _语法

val xs: List[String] = (1 to 100).map("" + _)(breakOut)

或者,以您原本想要的for / yield:

val xs: List[String] = (for(i <- 1 to 100) yield "" + i)(breakOut)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为列表创建一个按钮

为列表创建一个按钮

为列表创建一个按钮

对象组列表创建一个扩展对象列表

为列表中的每个项目创建一个新对象

在另一个列表中创建一个列表引用对象

将JSON列表解析为一个对象

为循环的每次迭代创建一个新列表

为大于零的项目创建一个对象数组

为Linq Select语句创建一个匿名对象

如何创建一个以数组为成员的数组对象?

Python3-处理大型列表:一个类实例还是为每个元素创建新对象?

在Visual C#中为列表中的每个对象创建一个图片框和标签

从 List 对象创建一个 SortedMap,其 Value 表示为映射到特定 Key 的 N 个最低对象属性的列表

如何创建一个输出对象列表和对象属性列表的javascript函数?

LINQ 查询以创建对象列表,其中每个对象都包含一个列表

如何从实际对象列表创建一个对象属性的列表?

为列表列表中的每个列表创建一个df

创建一个Jquery对象的对象

Java的8映射为对象的有一个字段列表组合成一个列表

创建一个长度为10:的列表作为第一个组件列表[[1]]

为什么要创建一个方法类型对象,我想要一个类型列表对象

为包含可观察属性的对象列表获取一个可观察对象?

从给定的列表中创建一个批次(每个长度为 20 的列表)

创建大小为“ n”的随机列表,其中包含来自另一个列表的元素

为列表中的每个列表创建一个新列

使用Java 8流从另一个列表创建对象列表

使用 java8 流从另一个列表创建对象列表

Kotlin - kotlin 列表过滤器是否创建一个新的列表对象?