それはフィールドにCollections.unmodifiableList()の結果をキャッシュすることをお勧めしますか?

trozen:

どちらが推奨されるアプローチです。

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;
}

後者は、オブジェクトの作成に保存されますが、それは努力の価値がありますか?

Mureinik:

作成unmodifiableListO(1)操作です(基本的に、それはインスタンスjava.util.Collections$UnmodifiableListデータメンバーにしてassingsあなたのリストを)。

あなたは持っていない限り、非常に反して、それはおそらくちょうどそれをキャッシュするの面倒価値がない表示されていること、あなたの特別な例説得力のベンチマークを。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=196133&siteId=1