我很想在一行中做到这一点:ArrayList<Integer> newArray = new ArrayList<>(oldArray);newArray.remove(0);function(newArray);我试过这个:function(new ArrayList<>(oldArray.remove(0));但它不起作用。可能吗?有什么建议吗?
3 回答

梵蒂冈之花
TA贡献1900条经验 获得超5个赞
最简单的方法是使用subList
:
function(new ArrayList<>(oldArray.subList(1, oldArray.size())));
这将创建一个新的ArrayList
初始化,其中包含oldArray
除第一个元素之外的所有元素。

30秒到达战场
TA贡献1828条经验 获得超6个赞
通过接口编程是一个很好的实践,而List
不是ArrayList
作为function()
方法的参数。
你可以这样做:
function(oldArray.stream().skip(1).collect(toList());
如果您确实需要使用特定的List
实现,您仍然可以这样做:
function(oldArray.stream().skip(1).collect(toCollection(ArrayList::new));

不负相思意
TA贡献1777条经验 获得超10个赞
在 java 8 中,您可以这样做:
function(oldArray.stream().skip(1).collect(Collectors.toList()));
如果你需要ArrayList
使用这个:
function(oldArray.stream().skip(1).collect(Collectors.toCollection(ArrayList::new)));
添加回答
举报
0/150
提交
取消