为了将Integer数组转换为整数列表,我尝试了以下方法:
初始化列表(整数类型),遍历数组并插入列表
通过使用Java 8 Streams:
int[] ints = {1, 2, 3};
List<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, Arrays.stream(ints).boxed().toArray(Integer[]::new));
Run Code Online (Sandbox Code Playgroud)在性能方面哪个更好?
JB *_*zet 50
第二个创建一个新的整数数组(第一次传递),然后将这个新数组的所有元素添加到列表中(第二次传递).因此它将比第一个效率低,后者只进行一次传递并且不会创建不必要的整数数组.
使用流的更好方法是
List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
哪个应该与第一个具有大致相同的性能.
请注意,对于这样的小阵列,不会有任何显着差异.您应该尝试编写正确,可读,可维护的代码,而不是关注性能.
Rod*_*sio 47
只需尝试类似的东西
Arrays.asList(array)
Run Code Online (Sandbox Code Playgroud)
Abd*_*awi 13
如果您不想更改列表:
List<Integer> list = Arrays.asList(array)
Run Code Online (Sandbox Code Playgroud)
但是如果你想修改它,你可以使用它:
List<Integer> list = new ArrayList<Integer>(Arrays.asList(ints));
Run Code Online (Sandbox Code Playgroud)
或者只是使用java8,如下所示:
List<Integer> list = Arrays.stream(ints).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
Java9引入了这种方法:
List<Integer> list = List.of(ints);
Run Code Online (Sandbox Code Playgroud)
但是,这将返回您无法添加的不可变列表.
您需要执行以下操作才能使其变为可变:
List<Integer> list = new ArrayList<Integer>(List.of(ints));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90536 次 |
| 最近记录: |