我很想一行完成这一点:
ArrayList<Integer> newArray = new ArrayList<>(oldArray);
newArray.remove(0);
function(newArray);
我已经尝试过了:
function(new ArrayList<>(oldArray.remove(0));
但是它不起作用。可能吗?有什么建议吗?
答案 0 :(得分:3)
最简单的方法是使用subList
:
function(new ArrayList<>(oldArray.subList(1, oldArray.size())));
这将创建一个新的ArrayList
,并初始化oldArray
中除第一个元素外的所有元素。
答案 1 :(得分:1)
在Java 8中,您可以执行以下操作:
function(oldArray.stream().skip(1).collect(Collectors.toList()));
如果您需要ArrayList
,请使用以下方法:
function(oldArray.stream().skip(1).collect(Collectors.toCollection(ArrayList::new)));
答案 2 :(得分:1)
要通过接口编程是一种好习惯,请优先使用List
和ArrayList
作为function()
方法的参数。
您可以这样做:
function(oldArray.stream().skip(1).collect(toList());
如果您确实需要使用特定的List
实现,您仍然可以:
function(oldArray.stream().skip(1).collect(toCollection(ArrayList::new));