m48*_*482 5 java scala function list
在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 8相同:
示例:
List<Result> collect = IntStream.range(0, 5)
.mapToObj(i -> doSomething(i))
.collect(Collectors.toList());
public Result doSomething(Integer i) {
return ...;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |