java - 在列表最佳解决方案中查找给定数字的出现次数

标签 java arraylist

我已经编写了一个解决方案来查找 n 个列表中出现的公共(public)数字。我只是担心这是否是最佳解决方案?请建议最好的方法。

import java.util.Arrays;
import java.util.List;

public class CommonNumberFinder
{

    final static List<Number> list1 = Arrays.asList(new Number[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
    final static List<Number> list2 = Arrays
            .asList(new Number[] { 3, 5, 1, 6, 2, 6, 3, 3, 6, 1, 5, 7, 2, 6, 2, 5, 2, 6, 8, 2 });

    public static void main(String[] args)
    {
        findCountOfNumber(Arrays.asList(new List[] { list1, list2 }), 6);
    }

    private static void findCountOfNumber(final List<List<Number>> lists, final Number num)
    {
        int count = 0;
        for (List<Number> list : lists)
        {
            if (!list.contains(num))
            {
                System.err.printf("Number %d is not common", num);
            }
        }
        for (List<Number> list : lists)
        {
            for (Number number : list)
            {
                if (number == num)
                    count++;
            }
            System.out.println("List have-" + count);
            count = 0;
        }

    }
}

最佳答案

简单多了。

Java 中已经有一个函数:

Collections.frequency(list,num);

所以在你的情况下你必须做一个循环:

for(List<Number> nestedList : lists){
    count+=Collections.frequency(nestedList,num);
}
if(count == 0) {                
   System.err.print(num+ " is not common");
} else{
   System.out.println("List have-" + count);
}

这将给出所需的输出

关于java - 在列表最佳解决方案中查找给定数字的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41136528/

相关文章:

java - 如何按照我想要的方式对这个 ArrayList 进行排序?

java - 在 Spring Controller 中进行数据绑定(bind)期间,如何将请求中的两个字符串参数绑定(bind)到一种字段类型?

java - 如何让SQL连接语句通用

java - toString方法ArrayList简单递归

java - 在 Java 中将文本文件放入二维不规则数组中

java - HashMap 到 ArrayList 内存不足

arrays - ballerina - 检查数组中是否存在某个值

java - java中将字符串分割成字符

Java流密码(带有输入和输出txt文件)输出随机字符不完整的解密字符串

java - 为什么 Android 使用 Ints 而不是 Enums