【发布时间】:2010-10-28 07:13:32
【问题描述】:
既然 Java 不允许将方法作为参数传递,那么在 Java 中你使用什么技巧来实现类似 Python 的列表推导?
我有一个字符串列表 (ArrayList)。我需要使用一个函数来转换每个元素,以便获得另一个列表。我有几个函数将一个字符串作为输入并返回另一个字符串作为输出。如何制作一个可以将列表和函数作为参数提供的通用方法,以便我可以在处理每个元素时返回一个列表。从字面上看是不可能的,但是我应该使用什么技巧呢?
另一种选择是为每个较小的字符串处理函数编写一个新函数,该函数简单地循环整个列表,这有点不太酷。
【问题讨论】:
-
作为参考,您可以使用 Jython 或 Scala 在 JVM 上获取列表推导
-
SMH 同时阅读所有关于此的答案。在 Python 中,您可以轻松地在一行 40-60 个字符中编写列表推导式。这里提出的所有解决方案都是多行的,其中大多数比 Python 中的单行更长。
-
@ArtOfWarfare 我认为 yurez 的 Java 8 replaceAll 解决方案与 Pythonic 非常接近。
-
@Noumenon - 是的,看起来确实很棒。我想知道当我发表评论时我是否错过了它或其他什么。他的示例在 Python 中只缩短了 8 个字符,行数相同,并且可以说更容易阅读。加上其中 6 个字符来自 Java 的
toUpperCase与 Python 的upper,这与问题并不真正相关。
标签: java python parameters methods list-comprehension