java - 是否建议在字段中缓存 Collections.unmodifiableList() 结果?
问题描述
推荐的方法是哪一种:
private final List<Object> list = new ArrayList<>();
public List<Object> getListView() {
return Collections.unmodifiableList(list);
}
或者
private final List<Object> list = new ArrayList<>();
private final List<Object> listView = Collections.unmodifiableList(list);
public List<Object> getListView() {
return listView;
}
后者节省了对象创建,但值得付出努力吗?
解决方案
创建 anunmodifiableList
是一个 O(1) 操作(本质上,它实例化 ajava.util.Collections$UnmodifiableList
并将您的列表分配给数据成员)。
除非您有一个非常令人信服的特例基准来显示相反的情况,否则可能不值得麻烦缓存它。
推荐阅读
- html - 无法点击文字
- c# - 通过 ajax 向控制器发布的模型为空
- ruby-on-rails - 当我使用 lib 和 helpers 时未初始化的常量
- c# - IronPython.Runtime.Exceptions.ImportException:'没有名为 pandas 的模块'
- angular - 如何在从组件 2 回到组件 1 时冻结组件 1 的状态
- smtp - PHPMailer 允许 mime 边界可见
- sql - Oracle:每次价值变化后的分析函数小计
- bash - sed/Awk/cut... 如何决定使用哪个来解析 Docker 输出?
- css - 如何使用 laravel 5.7 更改 fontawesome 的导入路径
- python - 带有kivy的随机屏幕显示