相关疑难解决方法(0)

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

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

ArrayList<WorldLocation> locations = new ArrayList<WorldLocation>();
Run Code Online (Sandbox Code Playgroud)

下面我称之为以下方法:

.getMap();
Run Code Online (Sandbox Code Playgroud)

getMap()方法中的参数是:

getMap(WorldLocation... locations)
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不确定如何将整个列表locations传入该方法.

我试过了

.getMap(locations.toArray())
Run Code Online (Sandbox Code Playgroud)

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

现在,如果我使用

.getMap(locations.get(0));
Run Code Online (Sandbox Code Playgroud)

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

最简单的方法是什么?我觉得我现在不想直接思考.

java variadic-functions

205
推荐指数
3
解决办法
11万
查看次数

.toArray(new MyClass [0])或.toArray(new MyClass [myList.size()])?

假设我有一个ArrayList

ArrayList<MyClass> myList;
Run Code Online (Sandbox Code Playgroud)

我想打电话给阿瑞,是否有使用性能的原因

MyClass[] arr = myList.toArray(new MyClass[myList.size()]);
Run Code Online (Sandbox Code Playgroud)

过度

MyClass[] arr = myList.toArray(new MyClass[0]);
Run Code Online (Sandbox Code Playgroud)

我更喜欢第二种风格,因为它不那么冗长,我认为编译器会确保空数组不会真正被创建,但我一直想知道这是不是真的.

当然,在99%的情况下,它不会以某种方式产生影响,但我希望在我的普通代码和优化的内部循环之间保持一致的风格......

java performance coding-style

147
推荐指数
4
解决办法
7万
查看次数