推荐的方法是:

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并将您的列表关联到数据成员)。

除非您的特殊情况的非常令人信服的基准表明了相反的情况,否则可能不值得将其缓存的麻烦。

10-04 12:05