gpt4 book ai didi

java - 返回列表或通过引用修改

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:23:29 25 4
gpt4 key购买 nike

在java中,我有一个修改列表内容的方法。是不是更好用:

public List modifyList(List originalList) { // note - my real method uses generics
// iterate over originalList and modify elements
return originalList;
}

还是做以下更好:

public void modifyList(List originalList) {
// iterate over originalList and modify elements
// since java objects are handled by reference, the originalList will be modified
// even though the originalList is not explicitly returned by the method
}

注意 - 两种方法之间的唯一区别是返回类型(一个函数返回 void,另一个返回 List)。

最佳答案

这完全取决于您如何使用您的 List - 如果您正在实现某种列表并且这是您的 List 类的非静态方法,那么你应该写

public List modifyList() // returning list

public int modifyList() // number of elements changed

如果是这个类之外的方法

关于对 List 或其副本执行操作:您应该考虑所需的行为和您的期望 - 最重要的是 - 我需要“旧”列表副本吗?。深度复制列表可能会有一点开销。浅拷贝将无法在不影响“旧”列表的情况下对列表的某些元素执行操作(即更改它的属性 - 如果它们是对象)。

关于返回 void:返回已更改列表(或至少已更改元素的数量)是一种很好的做法,这将允许您链接方法调用,如果不需要,您可以随时忽略它。

关于java - 返回列表或通过引用修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20099897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com