天天看點

關于對象容器的選擇

關于對象容器的選擇

程式設計中免不了要使用容器對象來容納若幹數量的對象。微軟的.NET程式設計平台真是兩個字--友善。它提供了一個ArrayList對象,滿足了程式設計時對容器對象的大部分需求。但是,真是如此嗎?

ArrayList主要提供了一種基于索引的容器,但是,它又提供了Contains函數,以至于可以自己編寫按内容查找的函數,但這并不一定高效。實際上,很多情況下,使用基于鍵的容器更為友善,減少周遊,函數效率顯然會增加不少。

以下是幾條體會:

ArrayList滿足了大多數需求;

僅當讀取後需要删除時,才使用Queue或Stack;

需要基于鍵而不是基于索引的通路,則需要選擇Hashtable--多個元素時 或者 ListDictionary--少量元素時;

不要使用具有多餘特性的集合類;

按這4個原則修改代碼後,代碼運作時所需要的記憶體有明顯降低,特别是記憶體峰值,有很大減少。

本文轉自斯克迪亞部落格園部落格,原文連結:http://www.cnblogs.com/sgsoft/archive/2004/09/27/47015.html,如需轉載請自行聯系原作者

繼續閱讀