使用CopyOnWriteArrayList的小技巧

最近在一個Web項目中使用CopyOnWriteArrayList緩存了一些欄目對象,由於每次從數據庫查詢所有欄目耗時較長,就採用初始化應用程序時查詢一次數據庫,將符合要求的欄目保存到內存中,以後每次通過後臺管理修改欄目時,將內存中對應緩存的欄目更新。

CopyOnWriteArrayList文檔沒有明確指出,不過使用時要注意,初始化一個ArrayList list = new ArrayList();,將查詢數據庫的結果放在這個list中,然後使用List cacheList = new CopyOnWriteArrayList(list);,因爲每次使用CopyOnWriteArrayList.add都要引起數組拷貝,所有隻有在初始化完成後設置到CopyOnWriteArrayList中,或者使用CopyOnWriteArrayList.addAll,避免在循環中使用CopyOnWriteArrayList.add。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章