Scala scala.List.fill(int)(method()) 在Java中的等价方法
在本文中,我们将介绍如何在Java中实现Scala中的List.fill方法。
Scala的List.fill方法用于创建指定长度的列表,并将列表元素初始化为通过方法调用的结果。例如,下面的代码将创建一个包含5个随机数的列表:
val list = List.fill(5)(scala.util.Random.nextInt(10))
以上代码将生成一个类似List(3, 9, 1, 4, 7)的随机数列表。
在Java中,我们可以使用以下方法来实现类似的功能:
import java.util.*;
public class ListUtils {
public static <T> List<T> fill(int size, Supplier<T> supplier) {
List<T> list = new ArrayList<>();
for (int i = 0; i < size; i++) {
list.add(supplier.get());
}
return list;
}
public static void main(String[] args) {
List<Integer> list = fill(5, () -> new Random().nextInt(10));
System.out.println(list);
}
}
在上面的示例代码中,我们定义了一个ListUtils类,并在其中编写了一个fill方法。该方法接受两个参数:列表的大小以及一个供应商(Supplier)对象。供应商对象用于在每次调用时生成列表的元素。
在fill方法的内部,我们使用一个循环来创建指定大小的列表,并通过调用供应商对象的get()方法来获取每个元素的值,并将其添加到列表中。
在main方法中,我们通过调用fill方法来创建一个包含5个随机数的列表,并使用System.out.println打印列表的内容。
运行以上Java代码,将会得到类似[3, 9, 1, 4, 7]的输出结果,与Scala中的示例代码生成的列表相同。
这样,我们就成功地在Java中实现了Scala中List.fill方法的功能。
阅读更多:Scala 教程
总结
在本文中,我们介绍了如何在Java中实现与Scala中List.fill方法相似的功能。通过定义一个自己的fill方法,并使用循环和供应商对象来生成列表元素,我们可以实现类似的效果。尽管在Java中实现起来需要更多的代码,但我们仍然可以达到相同的结果。通过理解和掌握这种实现方式,我们可以更好地理解Scala中的常用方法,并在需要时在Java中使用类似的功能。
极客教程