计算数组中某一数字出现次数

计算数组中某一数字出现次数

思路

这个比较简单,思路其实就是遍历数组中所有的数字做一下对比,有的话记录一下即可。但是这几天看到了个双向列表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做比较分析性能和底层实现。

猜你喜欢

转载自blog.csdn.net/qq_42194657/article/details/135438305