推荐的方法是:
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;
}
后者节省了对象创建的费用,但是值得吗?
最佳答案
创建unmodifiableList
是O(1)操作(本质上,它实例化了java.util.Collections$UnmodifiableList
并将您的列表关联到数据成员)。
除非您的特殊情况的非常令人信服的基准表明了相反的情况,否则可能不值得将其缓存的麻烦。