数组Array,链表LinkedList和哈希表HashTable

【优缺点】

数组:查询方便,但增删难,空间利用率不高

链表:增删简单,空间利用率高,但查询难

哈希表:都挺简单(结合产物)

 

【不同点】

1、数组空间连续,链表空间发散

2、数组需要预留空间,提前申请,链表不需要,链表需要下一个元素的地址

3、数组空间利用率不高,链表比较高,因为是动态申请

4、数组空间是分配(先进后出),链表是分配(先进先出)

5、数组可以通过索引取值,链表不行,哈希表可以通过键取值

 

【声明】

//数组
int[] arr=new int[5];
string[] strs=new string[]{"123","234"};

//链表
LinkedList<int> links=new LinkedList<int>();

//哈希表
Hashtable ht=new Hashtable();

 

【增删与遍历】

//数组
arr[3]=6;
for(int i=0;i<arr.Length;i++)

//链表
links.AddFirst(123);
links.AddLast(456);

LinkedListNode<int> node123 = linkedList.Find(123);
linkedList.AddBefore(node123, 213);//在指定节点前新增元素
linkedList.AddAfter(node123, 9);//在指定节点后新增元素

links.Remove(123);
links.RemoveFirst();
links.RemoveLast();
links.Clear();

//哈希表
ht.Add("code1",123);
ht.Remove("code1");

ht.Clear();

ICollection key = ht.Keys;    //遍历
foreach (string k in key)
{
       Console.WriteLine(k + ": " + ht[k]);
}

 

posted @ 2020-09-08 14:15  RookieCoderAdu  阅读(185)  评论(0)    收藏  举报