猿问

用另一个 ArrayList 的所有元素创建一个新的 ArrayList,除了一行代码

我很想在一行中做到这一点:


ArrayList<Integer> newArray = new ArrayList<>(oldArray);

newArray.remove(0);

function(newArray);

我试过这个:


function(new ArrayList<>(oldArray.remove(0));

但它不起作用。可能吗?有什么建议吗?


MM们
浏览 198回答 3
3回答

梵蒂冈之花

最简单的方法是使用subList:function(new&nbsp;ArrayList<>(oldArray.subList(1,&nbsp;oldArray.size())));这将创建一个新的ArrayList初始化,其中包含oldArray除第一个元素之外的所有元素。

30秒到达战场

通过接口编程是一个很好的实践,而List不是ArrayList作为function()方法的参数。你可以这样做:function(oldArray.stream().skip(1).collect(toList());如果您确实需要使用特定的List实现,您仍然可以这样做:function(oldArray.stream().skip(1).collect(toCollection(ArrayList::new));

不负相思意

在 java 8 中,您可以这样做:function(oldArray.stream().skip(1).collect(Collectors.toList()));如果你需要ArrayList使用这个:function(oldArray.stream().skip(1).collect(Collectors.toCollection(ArrayList::new)));
随时随地看视频慕课网APP

相关分类

Java
我要回答