将C#代码转换为Java-显示数组元素出现多少次

时间:2018-10-25 16:41:05

标签: java c# arrays linq

我在C#中有一个代码,它将显示数组元素出现的次数。 我的C#代码使用LINQ可以很好地完成此任务。

但是我想知道如何在Java中完成相同的任务,在Java中是否有LINQ的等效项?

C#代码

int[] numbers = new int[10];

        Console.WriteLine("Input 10 numbers:  ");

        for(int i = 0; i < numbers.Length; i++)
        {
            numbers[i] = Int32.Parse(Console.ReadLine());
        }

        var groups = numbers.GroupBy(v => v);

        foreach (var group in groups)
        {
            Console.WriteLine("Value {0} has {1} items", group.Key, group.Count());
        }

        Console.ReadLine();

1 个答案:

答案 0 :(得分:0)

没有为此预先存在的库。 但是,您可以使用HashMap来轻松实现此目的。

    //define array / input
    int[] array = {1, 2, 4 , 5, 1, 2, 5};

    HashMap<Integer, Integer> frequencyMap = new HashMap<>();
    for(int i = 0; i < array.length; ++i) {
        if(frequencyMap.get(array[i]) == null) {
            // new element
            frequencyMap.put(array[i], 1);
        } else {
            // already present, increase count
            frequencyMap.put(array[i], frequencyMap.get(array[i]) + 1);
        }
    }

    for(Integer key: frequencyMap.keySet()) {
        System.out.println(key + " has " + frequencyMap.get(key) + " items.");
    }