计算数组中某一数字出现次数
- 思路
- 实现
- 普通数组的方法
- 双向列表的方法
- 总结
思路
这个比较简单,思路其实就是遍历数组中所有的数字做一下对比,有的话记录一下即可。但是这几天看到了个双向列表LinkList的方法,所以拿出来做一下对比看看。
实现
普通数组的方法
/// <summary>/// 数组比较出现次数(int)/// </summary>/// <param name="arr"></param>/// <param name="number"></param>/// <returns></returns>int GetNumCount(int[] arr,int number){int count = 0;for (int i = 0; i < arr.Length; i++){if (arr[i] == number){count++;}}return count;}
双向列表的方法
/// <summary>/// 双向链表比较出现次数(int)/// </summary>/// <param name="arr"></param>/// <param name="number"></param>/// <returns></returns>int GetNumCountLinkedList(int[] arr, int number){int count = 0;LinkedList<int> numbers = new LinkedList<int>(arr);int givenInt = 1;LinkedListNode<int> currentNode = numbers.First;while (currentNode != null){if (currentNode.Value == givenInt){count++;}currentNode = currentNode.Next;}return count;}
对比:两者都可以去实现上述的方法,但是数组的方法我们需要自己手动的去寻找数组的下一个,但是双向列表不同,它有一个单独的LinkedList的持有类LinkedListNode这个就给我们提供了方便快速找到上一个和下一个值。
总结
这里LinkedList只介绍用法,性能分析放在下面和ArrayList做比较分析性能和底层实现。