当前位置: 首页 > 面试题库 >

如何将ArrayList传递给varargs方法参数?

谷梁嘉运
2023-03-14
问题内容

基本上我有一个ArrayList的位置:

ArrayList<WorldLocation> locations = new ArrayList<WorldLocation>();

在此之下,我调用以下方法:

.getMap();

getMap()方法中的参数为:

getMap(WorldLocation... locations)

我遇到的问题是我不确定如何在整个locations方法列表中传递该方法。

我试过了

.getMap(locations.toArray())

但是getMap不接受,因为它不接受Objects []。

现在,如果我使用

.getMap(locations.get(0));

它会完美地工作…但是我需要以某种方式传递所有位置…我当然可以继续添加locations.get(1), locations.get(2)等等,但是数组的大小会有所不同。我只是不习惯整个概念ArrayList

最简单的方法是什么?我觉得我现在不在考虑。


问题答案:

源文章:将列表作为参数传递给vararg方法

使用toArray(T[] arr)方法。

.getMap(locations.toArray(new WorldLocation[locations.size()]))

toArray(new WorldLocation[0])也可以,但是您会无故分配零长度的数组。)

这是一个完整的示例

public static void method(String... strs) {
    for (String s : strs)
        System.out.println(s);
}

...
    List<String> strs = new ArrayList<String>();
    strs.add("hello");
    strs.add("wordld");

    method(strs.toArray(new String[strs.size()]));
    //     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...


 类似资料:
  • 问题内容: 我很好奇Go中是否有可能。我有多种方法的类型。是否可以有一个函数,该函数需要一个方法参数,然后将其称为类型? 这是我想要的一个小例子: Go认为type 有一个称为的方法,而不是用传入的方法名称替换它。 问题答案: 是的,有可能。您有2(3)个选项: 规范:方法表达式 该表达式产生的功能与第一个参数等效,但具有一个显式接收器。它有签名。 在这里,方法接收器是显式的。您只需将方法名称(具

  • 这是我的第一个Java应用程序。我正在尝试创建一个产品(键)和它们的价格(值)的地图。文档上说我不能用doubles换钱,所以我得用bigdecimal。我现在完全不知道如何在我的方法和地图中使用BigDecimal。 寄存器类: 主类:

  • 我有办法 我想知道如果它真的创建了用户,我是否可以对其进行单元测试。但是它没有参数。 我尝试了以下方法: 然而,这实际上让我通过了与扫描仪的争论,这显然是我在测试中无法做到的。还尝试了其他逻辑。我也尝试过使用when(),,,但我找不到解决这个问题的方法,因为我对模仿还比较陌生。 有人能和我分享一些想法吗?

  • 我必须向main方法传递两个参数。我的构建脚本是 如果我尝试: 然后发生了一个错误。 如何轻松地将参数传递到主方法命令行?

  • 标题可能有点混乱或误导,但我试图比较一个字符串: 然后尝试将其与arraylist中包含的每个字符串进行比较 我得到了一个类,唯一重要的是“搜索”方法。 如果您没有注意到,此方法会接收对象的arraylist作为参数。现在的问题是