小编m48*_*482的帖子

List.fill(int)(method())在Java中是等价的吗?

在Scala中,有一种方法看起来像这样.

List[(A, B)] = List.fill(n)(doSomething(arg))
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果有任何方法可以在Java中执行此操作,或者是否必须通过一系列冗长for的操作完成此操作,那么您有什么用.

Java确实有,Collections.fill但它似乎没有做我想要它做的事情.

Scala实现如下:

def buyCoffee(cc: CreditCard): (Coffee, Charge) =
{
    val cup = new Coffee()
    (cup, Charge(cc, cup.price))
}
def buyCoffees(cc: CreditCard, n: Int): (List[Coffee], Charge) =
{
    val p: List[(Coffee, Charge)] = List.fill(n)(buyCoffee(cc))
}
Run Code Online (Sandbox Code Playgroud)

对我来说,这在Java中似乎是不可能实现的,或者不是我所知道的Java或者迄今为止我在文档中找到的内容.

这个Scala代码可以 Paul Chiusana和RúnarBjarnason的Scala函数编程的第7页中找到.

java scala function list

5
推荐指数
1
解决办法
640
查看次数

标签 统计

function ×1

java ×1

list ×1

scala ×1