在java中,我有一个修改列表内容的方法.使用起来更好:
public List modifyList(List originalList) { // note - my real method uses generics
// iterate over originalList and modify elements
return originalList;
}
Run Code Online (Sandbox Code Playgroud)
或者更好的做法如下:
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
}
Run Code Online (Sandbox Code Playgroud)
注 - 两种方法之间的唯一区别是返回类型(一个函数返回void而另一个函数返回List).
这完全取决于您如何使用List- 如果您正在实现某种列表并且这是您的List类的非静态方法,那么您应该编写
public List modifyList() // returning list
Run Code Online (Sandbox Code Playgroud)
或者
public int modifyList() // number of elements changed
Run Code Online (Sandbox Code Playgroud)
关于对列表或其副本执行操作:您应该考虑所需的行为和您的期望 - 最重要的是 -我需要“旧”列表副本吗?。深度复制列表可能会产生一点开销。浅复制将无法在不影响“旧”列表的情况下对列表的某些元素执行操作(即更改其属性 - 如果它们是对象)。
关于返回 void:返回更改列表(或至少更改元素的数量)是一个很好的做法,这将允许您链接方法调用,如果不需要,您可以随时忽略它。
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |