List和T[]有什麽區別
字典是做什麽的?還有哪些容器是常用的?NET BCL?它們是如何實現的(什麽樣的數據結構)?分別適合哪些場景?壹般怎麽選?List是壹個泛型列表,可以定義為無限長,T[]是壹個泛型數組。當妳定義數組時,妳必須定義它的長度。通常使用列表。很明顯,很好用,方法也很多。而且長度無限,可以根據需要不斷添加。應該註意,數組本身是從Object繼承的,所以它總是在堆上分配。字典是做什麽的?這是dictionary的壹個泛型類,對應於原始哈希表。還有哪些容器是常用的?NET BCL?它們是如何實現的(什麽樣的數據結構)?分別適合哪些場景?除了上面提到的兩個最常用的列表和字典,還有以下容器:Queue和Stack,都是不允許隨機訪問的列表。Queue是先進先出隊列,Stack是先進先出堆棧。SortedList和SortedDictionary都是在枚舉時返回壹個按鍵排序的列表,區別在於前者使用的內存更少,而後者在添加項目時更快,但如果依次排序和添加,前者會更快。LinkedList是壹個鏈表。該集合沒有相應的非通用版本。鏈表用於輕松地向其中插入元素。隨機存取性能比數組慢,並且占用更多空間。它不同於List,因為它沒有預分配的擴展容量,所以沒有“浪費”的空間。