整数数组中重复值的数量

时间:2019-11-13 15:18:39

标签: java arrays

我需要一种函数或方法来查找在一个值中重复的值的数量。我不是在寻找重复的数字或重复多少次,而只是在寻找重复的数字的数量。这听起来可能令人困惑,所以这里有个例子:

&$x

数字1具有多个实例,数字2和3也具有多个实例。
因此,我的输出应为“有3种连续值的情况”
这是我到目前为止所拥有的:

int[] anArray = { 
    1, 2, 3,
    4, 3, 1, 
    7, 2, 9, 1
};

在循环之外,我需要能够输出重复值的数量。这是while循环练习,因此不允许我用于循环。

3 个答案:

答案 0 :(得分:1)

您可以使用以下伪代码:

  • 给出一个数字数组
  • 将所有值按数字分组
  • 通过重复过滤所有值
  • 打印所有重复的号码

实现如下:

        int[] anArray = { 1, 2, 3, 4, 3, 1, 7, 2, 9, 1 };
        Arrays.stream(anArray).boxed()
            .collect(Collectors.groupingBy(Integer::intValue))
            .values().stream().filter(l->l.size()>1)
            .forEach(numbers -> System.out.println(numbers.get(0)));

输出将是:

1
2
3   

答案 1 :(得分:1)

如果必须使用 while 循环,则可以尝试使用Arrays.sort函数的以下简单算法:

foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
    catalog.Catalogs.Add(new AssemblyCatalog(assembly));
}

答案 2 :(得分:0)

  

尝试一下:

add_shortcode( 'return_post_id', 'the_dramatist_return_post_id' );

function the_dramatist_return_post_id() {
    global $post;

    return $post->ID ?? '';
}